面向对象编程2
面向对象编程中的继承.
继承可以减少类与类之间代码冗长的问题.首先我们什么是继承?在程序中继承是一种新建子类的方式,新创建的类叫子类或派生类,被继承的叫父类或基类或超累继承说的是一种关系,即子类可以使用父类的属性.
python中类的继承分为:单继承和多继承例如:
class Parent1:
pass
class Parent2:
pass
class Sub1(Parent1):
pass
class Sub2(Parent1,Parent2):
pass
查看继承的父类使用:__bases__
在多继承背景下,如果一个子类继承了多个分支,但是多个分支没有汇聚到一个非object类,无论是新式类还是经典类属性查找顺序都一样:
会按照从左到右的顺序一个分支一个分支的查找下去
经典类和新式类
python3中默认只有新式类
python2中才分经典类和新式类,显示的声明继承object的类以及该类的子类都是新式类,反之为经典类
在子类派生出的新功能中如何重用父类的功能:
方式一: 指名道姓地访问某一个类中的函数,与继承无关
方式二: super(OldboyTeacher,self),在python3中super可以不传参数,调用该函数会得到一个特殊的对象,该对象是专门用来访问父类中属性,
强调:super会严格参照类的mro列表依次查找属性