父类:
package com.test;
public class Parent {
static {
System.out.println("Parent Static");
}
{
System.out.println("Parent Block");
}
public Parent() {
System.out.println("Parent Construct");
}
}
子类:
package com.test;
public class Child extends Parent {
static {
System.out.println("Child Static");
}
{
System.out.println("Child Block");
}
public Child() {
System.out.println("Child Construct");
}
public static void main(String[] args) {
new Child();
}
}
执行结果如下:
Parent Static
Child Static
Parent Block
Parent Construct
Child Block
Child Construct
结论:
静态代码块static 是在类加载的时候最先初始化,父类优先于子类
代码块和构造函数是在类初始化的时候先后一起初始化的。