首页 > 代码库 > 面向对象的三大特性(封装、继承、多态)-----继承

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

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

  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()         # acc.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

 

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