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


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

  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

优质内容筛选与推荐>>
1、应用MFC开发高级应用程序
2、create-react-app中的一些功能配置
3、setTimeout 与setInterval 的区别
4、星期一
5、浅谈树链剖分


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn