继承
- 上一篇讲述了面向对象三大特征,并且讲述了封装,体现了面向对象的安全性考虑,继承则是体现了面向对象的可扩展性,多态体现的是面向对象的灵活性
- 有一个类,是一个共性的类,其他还有多种类需要继承这个类的内容,就保证了代码的可复用性
- 可扩展性,是一个非常重要的性质,我们可以在一个基类的基础上,扩展出多个子类,拥有与父类相同的属性,方法,在此基础上重写部分功能,形成一个新的类,这样的方式很容易更新一个类,而且不修改父类。
- 比如植物大战僵尸中的普通僵尸是一个父类 路障僵尸就是其一个子类,继承了普通僵尸的特性,此外加了一个路障头套,抗击打能力加强了,而橄榄球僵尸,则是在普通僵尸父类中重写了速度属性,加了一个护甲,强化了速度,而这在开发中会节省大量的时间。比如说普通僵尸的某个属性或者方法出错了,我们只需要改普通僵尸的方法即可,这些可以传递到橄榄球僵尸和路障僵尸的子类中,而不必再依次修改那两个子类中的程序
继承语法
-
class Dog(Animal):
-
代码块
-
继承但可以对继承的方法属性进行更改,
-
继承 被继承的叫父类,继承的叫子类 判断A类是否是B类的子类的方法:
-
issubclass(A,B)
-
object 是所有类的父类
重写
- 重写或覆盖,对A的功能重写了,覆盖了
- 实例调用一个方法,如果子类有就调用这个,没有看看父类的父类有没有,以此类推,如果老祖也没有,就报错
super类
- 顾名思义 超级类
- 但是有了超级类我们就不那么超级累了
- 在子类继承的时候,很容易遇到:子类有父类没有的属性,此时在继承父类的同时,子类需要定义新的属性,此时super就派上用场了。
- 语法:def init(self,name,age):
-
super().__init__(name)
-
self._age = age
- #这就是说,继承了父类的name属性,其他的自己定义