1. 继承
比较官方的说法就是:
- 继承(英语:inheritance)是面向对象软件技术当中的一个概念。
- 如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。
- 继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。
- 在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,
- 即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 一般静态的面向对象编程语言,继承属于静态的,意即在子类别的行为在编译期就已经决定,无法在执行期扩充。
1.1 案例
1.2 继承的有点也是显而易见的:
- 增加了类的耦合性(耦合性不宜多,宜精)。
- 减少了重复代码。
- 使得代码更加规范化,合理化。
1.3 继承的分类
1.3.1 就向上面的例子:
- Aminal 叫做父类,基类,超类。
- Person Cat Dog: 子类,派生类。
- 继承:可以分单继承,多继承。
1.3.2 这里需要补充一下python中类的种类(继承需要
- python3x版本中只有一种类。
- python3中使用的都是新式类. 如果基类谁都不继承. 那这个类会默认继承 object。
1.3.3 在python2x版本中存在两种类.:
- 一个叫经典类. 在python2.2之前. 一直使用的是经典类. 经典类在基类的根如果什么都不写.
- 一个叫新式类. 在python2.2之后出现了新式类. 新式类的特点是基类的根是object类。
1.3.4 经典与新式的查找顺序
- 经典深度优先,一条路走到黑,没找到,折回上一级继续找
- 新式广度优先,从左往右找
1.4 单继承
1.4.1 类名,对象执行父类方法
1.4.2 执行顺序
1.4.3 同时执行类以及父类方法
- 方法一:
如果想执行父类的func方法,这个方法并且子类中夜用,那么就在子类的方法中写上:
父类.func(对象,其他参数)
- 方法二(推荐)
利用super,super().func(参数)
1.5 新式类多继承
来源:骑台风走
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!