public class OrderTest {
public static void main(String[] args) {
/*
* 结果:
parent static block
Child static block
parent construct block
Child construct block
*/
new Child();
/*
*
* parent construct block
Child construct block
*/
new Child();
}
}
class Parent {
static {
System.out.println("parent static block");
}
public Parent() {
System.out.println("parent construct block");
}
}
class Child extends Parent {
static {
System.out.println("Child static block");
}
public Child() {
System.out.println("Child construct block");
}
}
执行顺序
1 父类的静态代码块
2 子类的静态代码块
3 父类的构造方法
4 子类的构造方法