初学Python,因为刚开始学了一些Java,所以在学到Python继承时觉得Java和Python的继承有很大的不同之处,所以记录下来自己觉得不同的地方,方便自己以后查看
Java | Python |
多重继承 | 多继承 |
子类继承父类时,构造方法中第一句为super(),自动调用父类构造方法 | 子类继承父类,需手动在构造方法中添加父类的构造方法 父类名.__init__(self,参数1,参数2,...)或者super(子类,self).__init__(参数1,参数2,....) |
自动继承父类属性 | 在构造函数中要先继承父类构造方法,也就是手动添加父类构造方法,才能获取父类属性 |
先初始化父类的构造函数,再是子类的构造函数,java需要先编译一下,编译成功之后由java虚拟机执行,它在编译过程中先初始化父类,然后初始化子类,所以运行时先运行父类的构造函数,然后运行子类的构造方法。 | python基于虚拟机,可以直接解释python语言,不要编译,所以如果没有手动添加父类构造方法是不会运行父类的构造方法。 以下是添加父类构造方法后实例子类对象的过程: 实例化对象->调用子类__init__-->子类继承父类的__init__-->调用父类__init__ |