1.继承
1.1单继承
继承 是实现代码的重用,方便相同的代码不必重复编写
概念:子类拥有父类所有方法和属性
1)继承的语法
class 类名(父类名):
pass
··子类继承父类所有的方法和属性,可以直接享受父类中已经封装好的方法,不需要再次开发
··在子类中只需要根据职责,封装自己独有的属性和方法即可
2)专业术语
··Dog类是Animal 类的子类, Animal 类是Dog类的父类, Dog 类从Animal 类继承
··Dog类是Animal 类的派生类, Animal 类是Dog类的基类, Dog类从Animal 类派生
3)继承的传递性
如果 C类 继承 B类 ,B类 继承 A类 ,那么 C类 具有 B类 和 A类 的所有属性和方法
·
1.2 方法的重写
当父类的方法实现不能满足子类需求时,可以对父类的方法进行重写
··重写分为两种
①覆盖父类的方法
②对父类方法进行扩展
1)覆盖父类的方法
实现方法:
在子类中定义与父类同名的方法
重写之后,在调用时,只会调用子类重写的方法,不会调用父类封装的同名方法。
2)对父类方法进行扩展
扩展 即为父类原本封装的方法实现是子类方法的一部分
实现方法:
①在子类中定义与父类同名的方法
②在需要的位置调用super().父类方法,调用父类的方法执行
③代码其他位置根据子类的需求,编写 子类特有的代码实现
·
1.3父类的私有属性和私有方法
1)子类继承父类后,子类对象不能在自己的方法内部,直接访问父类的私有属性和私有方法(外界和子类都不能直接访问)
2)子类对象可以通过父类的公有方法 间接 访问私有属性和私有方法
·
1.4多继承
··子类可以继承多个父类,并且拥有所有父类的属性和方法
实现方法:
class 子类名(父类名1, 父类名2......):
pass
·
注:当多继承有多个类的方法名一样,子类在调用此方法名时,会按照继承的先后顺序调用,因此当遇到这类情况时应当尽量避免使用多继承
例: