面向对象—继承/封装/多肽

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进行处理,非常感谢!

上一篇 2022年2月16日
下一篇 2022年2月16日

相关推荐