子类继承父类后构造器的特点:
- 子类中所有的构造器默认都会先访问父类中的无参的构造器,再执行自己。
为什么?
- 子类在初始化的时候,有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据。
- 子类初始化之前,一定要调用父类构造器先完成父类数据空间的初始化。
怎么调用父类构造器的?
- 子类构造器的第一行语句默认都是:super(),不写也存在。
super调用父类有参数构造器的作用:
- 初始化继承自父类的数据。
如果父类中没有无参数构造器,只有有参数构造器,会出现什么现象呢?
- 会报错。因为子类默认是调用父类无参数构造器的。
如何解决?
- 子类构造器中可以通过书写super(...),手动调用父类的有参数构造器。