• 面向对象的三大特性(封装、继承、多态)-----继承


    继承有几点应该注意的是:

    1. 继承要在子类加上父类的类名
    2. 子类和父类都有的方法,优先找子类的方法
    3. python里面可以继承多个类C#,java 不可以多继承
    4. 如果继承多个类,继承顺序为从左至右

    Python 3 里面的继承可以多继承,通过继承,可以获得父类的功能,继承的时候,如果父类中有重复的方法,优先找自己。

    class A:
        def f(self):
            print('a')
    class B:
        def f(self):
            print('b')
     
        def f1(self):
            print('bbbb')
     
    class C(A,B):
        def f1(self):
            print('c')
    cc=C()
    cc.f()         # a
    cc.f1()        # c
    

    关于继承顺序需要注意例如 E继承(C,D) -->C继承(A)-->D继承(B) 如下图(python3):

    如果有下面关系,D继承B,C继承A,E继承C,D,则查找顺序,E->C->A->D->B,

    查找顺序如下:

    python 3 

    第二种查找顺序:E继承(C,D)-->C继承(A),D继承(B)-->A和B都继承(Boos) ,查找顺序如下:

    python 3 中的查找顺序:E->C->A->D->B->BOSS

    class Boos:
        def f1(self):
            print('Boos')
    
    class A(Boos):
        def f1(self):
            print('A')
    class B(Boos):
        def f1(self):
            print('B')
    class C(A):
        def f1(self):
            print('C')
    class D(B):
        def f1(self):
            print('D')
    
    class E(C,D):
        def f1(self):
            print('E')
    
    aa = E()
    aa.f1()
    

    Python 2.7版本中 

    当Boss中未继承object时为经典类查找顺序是:深度优先

    E->C->A->BOSS->D->B

     当Boss中继承object时为新式类查找顺序是:深度优先

     查找顺序:E->C->A->D->B->BOSS

  • 相关阅读:
    Jenkins安装以及邮件配置
    TUXEDO管理命令总结
    QTP的退出函数
    QTP 启动应用软件方法
    Robot framework 和RIDE 关系
    使用pycharm编写和运行RF脚本
    刷题-力扣-102. 二叉树的层序遍历
    刷题-力扣-反转链表
    刷题-牛客-判断链表中是否有环
    刷题-力扣-278. 第一个错误的版本
  • 原文地址:https://www.cnblogs.com/mosson/p/5807718.html
Copyright © 2020-2023  润新知