Java创建子类对象时,子类的代码执行顺序

这里我编写了两个类,一个Father类和一个继承了Father的子类Son

public class Father {
    static {
        System.out.println("Father静态代码块");
    }
    
    {
        System.out.println("Father非静态代码块");
    }
    
    Father() {
        System.out.println("Father构造方法");
    }
    
    public static void main(String[] args) {
        new Son();
    }
    
}

class Son extends Father {
    static {
        System.out.println("Son静态代码块");
    }
    
    {
        System.out.println("Son非静态代码块");
    }
    
    Son() {
        System.out.println("Son构造方法");
    }
    
}

运行程序,得到以下结果:

由此我们可得出子类的代码执行顺序:

父类静态代码块 -> 子类静态代码块 -> 父类非静态代码块 -> 父类构造方法 -> 子类非静态代码块 -> 子类构造方法

原文地址:https://www.cnblogs.com/skyzou/p/13414682.html