面相对象编程之继承

什么是继承:

继承是一种新建类的方式,新建的类称之为子类或派生类,继承的父类称之为基类或超类

在Python中,一个子类可以继承多个父类

在其他语言中,一个字累只能继承一个父类

继承的作用:

减少代码的冗余

如何实现继承:

1、先确认谁是子类,谁是父类

2、在定义子类时,子类名(父类名)

如何寻找继承关系:

确认谁是子集

确认谁是父集

得先抽象,再继承

-- 抽取对象之间相似的部分,总结出类

-- 抽取类之间相似的部分,总结出父类

 

注意:程度的执行顺序是由上到下,父类必须定义在子类上方

在继承背景下,对象属性的查找顺序:

1、先从对象自己的名称空间中查找

2、对象中没有,从子类的名称空间中查找

3、子类中没有,从父类的名称空间中查找,若父类没有,就报错

 

派生

指的是子类继承父类的属性与方法,并且派生出自己独有的属性与方式

若子类中的方法名与父类相同,优先用子类

 

子类重用父类的属性,并派生出新的属性

解决方式:

1、直接引用父类的——init——为其传参,并添加子类属性

2、通过super来指定父类的属性

-- 父类是一个特殊类,调用super得到一个对象,该对象指向父类的名称空间

注意: 两种方法使用那一个都可以,但不能两种方式混合使用

 

经典类与新式类:

新式类:1、凡是继承object 的类或子类都是新式类

2、在python3 中所有的类都默认继承object

经典类:1、在python2 中才会有经典类与新式类之分

2、在python2 中,凡是没有继承object 的类,都是经典类

在python3中,提供了一个查找新式查找顺序的内置方法

mro():会把当前类的继承关系列出来

posted on 2019-11-27 16:12    阅读(111)  评论(0编辑  收藏  举报