根据牛客网题目稍微改变验证一下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>运行结果:
所以,执行顺序:
父类静态代码块->子类静态代码块->父类非静态代码块->父类构造函数->子类非静态代码块->子类构造函数