初始化顺序为:
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