子类对象创建过程的细节

本文记录Java学习过程中遇到的子类对象创建过程中的一些小细节~

如果子类的构造方法第一行写了this调用了本类其他构造方法,那么super调用父类的语句还有吗?

  • 这时是没有的,因为this()或者super(),只能定义在构造方法的第一行,因为初始化动作要先执行。

父类构造方法中是否有隐式的super呢?

  • 也是有的。记住:只要是构造方法默认第一行都是super();

父类的父类是谁呢?super调用的到底是谁的构造方法呢?

  • Java体系在设计,定义了一个所有对象的父类Object

注意:

  • 类中的构造方法默认第一行都有隐式的super()语句,在访问父类中的空参数构造方法。所以父类的构造方法既可以给自己的对象初始化,也可以给自己的子类对象初始化;
  • 如果默认的隐式super()语句在父类中没有对应的构造方法,那么必须在构造方法中通过this或者super的形式明确要调用的构造方法。

标签: none