python中类的继承–实列

类的继承可以看成对类的属性和方法的重用,能够大大的减少代码量,继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,也就是说在python中支持一个儿子继承多个父类。

通过继承创建的新类为子类或者派生类。

被继承的类称为基类、父类或超类

1、子类会继承父类所有的功能属性和方法,并且子类能够拥有自己的属性和方法;对原来的父类不会产生任何影响。单继承中只有一个父类,而多继承中有多个父类

2、调用属性和方法时,优先调用子类的,子类没有再去父类调用,当子类的属性和方法与父类的属性和方法名称重复时,以子类的属性和方法为准

3、多重继承时,有相同名称的属性和方法时,会优先继承写在前面的父类的重名属性和方法,前面没有再去找下个父类,父类也没有,找爷爷类

4、多重继承时,若子类有构造函数,调用子类构造函数,若子类没有,会调用写在前面父类的构造函数,再找后面的父类,最后找爷类

5、调用父类,若有构造函数,在实例化子类时就要传相应多的参数,需要多传参数时,就需要重构父类

6、如果在子类需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法。子类不重写 init,实例化子类时,会自动调用父类定义的 init;如果重写了__init__ 时,实例化子类,就不会调用父类已经定义的 init,要继承父类的构造方法,可以使用 super 关键字重写父类构造函数

实验证明:

1、实例化时,优先调用本类和继承类的构造函数

2、调用属性和方法时,优先调用子类的,子类没有再去父类调用,当子类的属性和方法与父类的属性和方法名称重复时,以子类的属性和方法为准

class继承list python python中类继承_类


class继承list python python中类继承_父类_02


实验证明:

1、子类有构造函数,优先调用子类的构造函数

2、子类没构造函数,找父类,调用父类构造函数

3、子类没有构造函数,父类也没有构造函数,找爷类,调用爷类构造函数

class继承list python python中类继承_子类_03


class继承list python python中类继承_子类_04


class继承list python python中类继承_类_05


实验证明:

如果在子类需要父类构造方法,不重写父类的构造方法。实例化子类时,会自动调用父类定义的 init;如果重写了__init__ 时,实例化子类,就不会调用父类已经定义的 init,要继承父类的构造方法,可以使用 super 关键字重写父类构造函数

class继承list python python中类继承_class继承list python_06