本文将继续介绍Python面向对象的特征。继承的最大优点是实现代码的复用。
1、Python的继承具有如下特点:
1.1 支持多继承,一个类可以有多个父类
1.2 只有公开的属性和方法才能被继承
1.3 属性或者方法继承的顺序是按照被继承类的顺序
1.4 如果有同名方法,子类方法将会覆盖父类的方法
例如:
class Base: def show(self): print('我是Base类'); class A(Base): def show(self): print('我是A类'); pass; class B(Base): name = ''; def show(self): print('我是B类'); class T(A,B): pass;
在此例中,T同时继承自A和B
class Base: def show(self): print('我是Base类'); class A(Base): name = ''; __Age = 0; def show(self): print('我是A类'); pass; class B(Base): name = ''; def show(self): print('我是B类'); class T(A,B): pass; t=T(); t.name = 'Tom'; t.__Age = 10;
在此例子中 属性name可以访问,属性__Age不可访问,因为__Age是私有属性,不可被继承
class Base: def show(self): print('我是Base类'); class A(Base): name = ''; __Age = 0; def show(self): print('我是A类'); pass; class B(Base): name = ''; def show(self): print('我是B类'); class T(A,B): pass; t=T(); t.show();
在此例子中,t.show()的结果是 我是A类,如果把A.show()方法注释掉,将会是我是B类,也就是说,执行t.show()的时候,Python解释器将会按照继承的顺序,从A-B-Base 的顺序依次寻找Show方法,如果依然没有寻找到show方法,将会抛出异常