public static void main(String[] args) {
Son son = new Son();
}
public static class Father{
String name = "father";
public Father(){
print();
}
public void print() {
System.out.println("father name: " + name);
}
}
public static class Son extends Father{
public Son(){
print();
}
String name = "son";
public void print() {
System.out.println("son name: " + name);
}
}
打印结果:

调用子类构造函数时,会先去调用父类构造函数
当调用父类构造函时调用print,此时子类还未完成实例初始化,因此打印为null,
当父类 构造完成,返回到子类构造函数,进而进行子类实例初始化,此时调用print子类,因此打印son。
本文深入探讨了Java中子类构造函数如何调用父类构造函数的过程,揭示了实例初始化时父类与子类构造函数的调用顺序,以及方法调用时变量状态的影响。
11万+

被折叠的 条评论
为什么被折叠?



