用以下程序做一个小测试,也没什么好解释的,运行结果解释一切,直接上代码:
InitOrderTest.java
package test;
class Parent {
{
System.out.println("parent block");
}
static {
System.out.println("parent static block");
}
public Parent() {
System.out.println("parent constructor");
}
}
class Child extends Parent {
{
System.out.println("child block");
}
static {
System.out.println("child static block");
}
public Child() {
System.out.println("child constructor");
}
}
public class InitOrderTest {
public static void main(String[] args) {
new Child();
}
}
运行结果:
参考资料:Java中static用法详解