继承
继承的概念
继承描述的是一种类间关系,一个类A从另一个类B获取成员信息,称类A继承自类B
提供成员信息的类称父类(基类),获取成员信息的类称子类(派生类)
继承的作用
子类可以使用父类的成员(成员变量,成员方法)
继承语法格式
class 类名(父类名):
pass
获取继承关系图谱
使用Python内置属性__mro__可以查看继承关系
语法格式:类名.__mro__
说明:mro即Method Resolution Order方法解析顺序
注意事项
子类可以添加父类没有的成员
父类私有成员不可被继承
重写
重写的概念
重写指在子类中定义与父类相同名称的成员方法
重写的作用
子类对父类的成员方法进行重写后,使用子类对象调用该方法时,将执行子类中重写后的方法
在子类中访问父类被重写的方法
格式一:
父类名.方法名(对象)
格式二:
super(本类名,对象).方法名()
格式三:(推荐)
super().方法名()
多继承
多继承的概念
一个类同时继承多个类,称为多继承
定义多继承语法格式
class 类名(父类名1,父类名2…):
pass
多继承关系中访问父类成员冲突
多继承关系中,当多个父类具有同名的成员,子类调时该成员时先调用继承关系中的第一个声明的类的成员
多态
多态的概念
一个对象具有多种形态,在不同的使用环境中以不同的形态展示其功能,称该对象具有多态特征
鸭子类型
鸭子类型是一种特殊的调用现象,当对象在语法层面能够满足调用关系,但对象并不具有对应的对象形态,称该对象此时具备鸭子类型
鸭子类型是一种特殊的多态表现形式
注意事项
多态通常发生在继承关系的基础之上