静态块,普通代码块,构造方法,父类、子类的初始化顺序

时间:2022-08-30 19:34:14

初始化顺序为:
1. 父类静态代码块
2. 子类静态代码块
3. 父类普通代码块
4. 父类构造方法
5. 子类普通代码块
6. 子类构造方法

测试用例:

class A {
static {
System.out.println("A static");
}
public A() {
System.out.println("A construtor");
}
{
System.out.println("A normal");
}
}
class B extends A {
static {
System.out.println("B static");
}
{
System.out.println("B normal");
}
public B() {
System.out.println("B construtor");
}
}
public class StaticTest {
public static void main(String[] args) {
A a = new B();
}
}

结果输出:

A static
B static
A normal
A construtor
B normal
B construtor