顺序是:父类静态代码块-〉子类静态代码块-〉父类代码块-〉父类构造方法-〉子类代码块-〉子类构造方法
父类
public class Fatcher {
static {
System.out.println("fatcher_static");
}
{
System.out.println("fatcher_daimakuai");
}
Fatcher() {
System.out.println("fatcher_gouzaofangfa");
}
}
子类
public class Son extends Fatcher {
static {
System.out.println("Son_static");
}
{
System.out.println("Son_daimakuai");
}
Son(){
System.out.println("Son_gouzaofangfa");
}
public static void main(String[] args) {
Son son = new Son();
}
}
打印结果
fatcher_static
Son_static
fatcher_daimakuai
fatcher_gouzaofangfa
Son_daimakuai
Son_gouzaofangfa
本文详细解析了Java中父类与子类在实例化过程中的构造与初始化顺序,包括静态代码块、实例初始化块及构造方法的执行流程。通过具体代码示例,展示了从父类静态代码块到子类构造方法的完整执行路径。
1594

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



