Python中超类和子类有什么区别

Python010

Python中超类和子类有什么区别,第1张

class a:

       pass

class b(a):

      pass

b类从a类继承而来,a就是超类,b就是子类,b类可以使用a类定义的方法,也可以在a类的基础上定义新的方法,a是基础类,b是a的扩展

默认是__init__

【1】python中如果子类有自己的构造函数,不会自动调用父类的构造函数,如果需要用到父类的构造函数,则需要在子类的构造函数中显式的调用。

【2】如果子类没有自己的构造函数,则会直接从父类继承构造函数,这在单继承(一个子类只从一个父类派生)中没有任何理解上的问题。

问题:如果是多继承的情况,一个子类从多个父类派生,而子类又没有自己的构造函数,则子类默认会继承哪个父类的构造函数。

【3】子类从多个父类派生,而子类又没有自己的构造函数时,

(1)按顺序继承,哪个父类在最前面且它又有自己的构造函数,就继承它的构造函数;

(2)如果最前面第一个父类没有构造函数,则继承第2个的构造函数,第2个没有的话,再往后找,以此类推。