package sh.thread;
//父类Parent
class Parent {
{
System.out.println("Parent的初始化块");
}
static {
System.out.println("Parent的static初始化块");
}
public Parent() {
System.out.println("Parent的构造方法");
}
}
class Son extends Parent {
{
System.out.println("Son的初始化块");
}
static {
System.out.println("Son的static初始化块");
}
public Son() {
System.out.println("Son的构造方法");
}
}
public class Test {
public static void main(String[] args) {
Parent p = new Son();
System.out.println("---------------------");
//可以看出,第二次在new对象时,静态代码块没有执行:也就是说静态代码块只执行一次
p = new Son();
}
}
截图: