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

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

代码如下:

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();
	}
}
运行结果:

JAVA父子类的构造函数、静态代码块等执行顺序_第1张图片

所以,执行顺序:

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

你可能感兴趣的:(Java)