JAVA父子类的构造函数、静态代码块等执行顺序

时间:2022-12-23 19:33:33

根据牛客网题目稍微改变验证一下JAVA中父子类的构造函数、静态代码块的执行顺序

代码如下:

<span style="font-size:18px;">class B extends Object
{
    static  //父类静态块
    {
        System.out.println("Load B static");
    }
	//父类非静态块
    {
        System.out.println("Load B");
    }
    public B()  //父类构造函数
    {
        System.out.println("Create B");
    }
    
}
class A extends B
{
    static    //子类静态块
    {
        System.out.println("Load A static");
    }
    //子类非静态块
    {
        System.out.println("Load A");
    }
    public A()    //子类构造函数
    {
        System.out.println("Create A");
    }
}

public class TestClass {

	public static void main(String[] args) {

		new A();
	}
}
</span>
运行结果:

JAVA父子类的构造函数、静态代码块等执行顺序

所以,执行顺序:

父类静态代码块->子类静态代码块->父类非静态代码块->父类构造函数->子类非静态代码块->子类构造函数