作者:不如藏拙_487 | 来源:互联网 | 2023-10-13 17:45
Java学习:关于一个构造方法中this()和super()的执行顺序?publicclassFather{privateStringname;privateint
Java学习:关于一个构造方法中this()和super()的执行顺序?
public class Father {
private String name;
private int age;
public Father() {System.out.println("father()");
}
}
public class Son extends Father {
private int height;
public Son(){System.out.println("son()");
}public Son(int height){
// this();
this.height = height;
}
public static void main(String[] args) {Son s = new Son(100);}
}
首先需要明确,在同一个构造方法中不能同时调用this()和super(),这两个方法都需要写在构造方法的第一行。
关于调用顺序,我们可以直接通过代码进行验证,Son继承了Father类,
当不使用this()时,控制台直接打印出:
father()
使用this()后,控制台打印出:
father()
son()
说明不管怎么调用,都会先调用父类的构造方法创建父类的对象。