继承是为了代码复用和设计复用而设计的,是面向对象程序设计的重要特征之一。当我们设计一个新类时,如果可以继承一个已有的设计良好的类然后进行二次开发,无疑会大幅度减少开发工作量。
1. 类的继承
类继承语法:
Class 派生类名(基类名): #基类名写在括号里
派生类成员
在继承关系中,已有的,设计好的类称为父类或基类,新设计的类称为子类或派生类。派生类可以继承父类的公有成员,但是不能继承其私有成员。
在python中继承的一些特点:
A、 在继承中基类的构造函数(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用
B、 如果需要在派生类中调用基类的方法时,通过"基类名.方法名()"的方法来实现,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self 参数。也可以使用内置函数super()实现这一目的。
C、 Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找(先在本类查找调用的方法,找不到才去基类中找)。
如下是类的继承应用
1.1 类的多继承
Python的类可以继承多个基类。继承的基类列表跟在类名之后。类的多继承语法:
例如定义C类继承A,B二个基类如下:
1.2 方法重写
重写必须出现在继承中。它是指当派生类继承了基类的方法之后,如果基类方法的功能不能满足需求,需要对基类的某些地方进行修改,可以在派生类重写基类的方法,也就是重写。
同一种事务的多种形态 就是多态
车有多种形态,你没有具体学习某一个对象,你是学的怎么开车(这就是多态性)
1、增加了程序的灵活性
以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)
2、增加了程序可扩展性
通过继承animal类创建了一个新的类,使用者无需改变自己的代码 还是func(animal)去调用