• python(继承)


    python中继承分为单继承或多继承。父类称为基类。

    子类继承了父类的所有属性。

    子类调用属性时,先在自己的属性中找,找不到才到父类属性中找。

    # -*- coding: utf-8 -*-
    class Dad:
        '这个是父类'
        money=100
        def __init__(self,name):
            print('父亲')
            self.name=name
        def Play(self):
            print('%s正在工作'%self.name)
    
    #单继承==>子类(父类)
    class Son(Dad):
        money = 2000
        
    print(Dad.money)
    print(Son.money)
    son_1=Son('小明')
    son_1.Play()
    print(son_1.name)
    

    子类和父类存在相同属性情况

    # -*- coding: utf-8 -*-
    class Dad:
        '这个是父类'
        money=100
        def __init__(self,name):
            print('父亲')
            self.name=name
        def Play(self):
            print('%s正在工作'%self.name)
    
    #单继承==>子类(父类)
    class Son(Dad):
        money = 2000
    
        def __init__(self,name,age):
            self.name=name
            self.age=age
        def Play(self):
            print('%s正在工作'%self.name)
    #子类和父类存在相同属性情况
    son_1=Son('小明',18)
    print(son_1.name)
    print(son_1.age)
    son_1.Play()
    

    什么时候用继承

    1.当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好

    2.当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好

    继承具有两种含义

    1.继承基类的方法,并且作出自己的改变或者扩展。(代码重用,意义不大)

    2.声明某个子类兼容与某基类,定义一个接口类,子类继承接口类,并且实现接口中定义的方法。(接口继承非常重要,父类规定好子类必须有的属性,子类具体实现)

    接口继承

    接口继承实质上是要求"做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外面调用者无需关心具体细节,可一视同仁处理实现了特定接口的所有对象",这在程序设计中叫做归一化。

    归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合。

    接口类继承实例

    # -*- coding: utf-8 -*-
    import abc
    class file(metaclass=abc.ABCMeta):
        @abc.abstractclassmethod
        def read(self):
            pass
    
        @abc.abstractclassmethod
        def write(self):
            pass
    
    class disk(file):
        def read(self):
            print('disk------>read')
        def write(self):
            print('disk------>write')
    
    class cd_rom(file):
        def read(self):
            print('d_rom------>read')
        def write(self):
            print('d_rom------>write')
    
    class mem(file):
        def read(self):
            print('mem------>read')
        def write(self):
            print('mem------>write')
    #如果基类中有一个没有实现基类的功能,会报错
    file1=disk()
    file1.read()
    file1.write()
    
  • 相关阅读:
    使用 Jackson – 将字符串转换为 JsonNode 对象
    Java 8 及其后续版本的新遍历 forEach
    IntelliJ IDEA 快速插入 for 循环
    在 Discourse 中如何使用输入对话框
    如何修改 Discourse 的域名
    Confluence 数据中心版本接近生命周期了
    IntelliJ IDEA 中如何将 POM 中的版本号快速提出为属性
    RedHat 8 如何检查端口是否联通
    二、RabbitMq安装
    一、RabbitMQ 的概念
  • 原文地址:https://www.cnblogs.com/2018-1025/p/12032218.html
Copyright © 2020-2023  润新知