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

时间:2021-09-23 19:29:57

根据牛客网题目稍微改变验证一下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父子类的构造函数、静态代码块等执行顺序

所以,执行顺序:

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