父类中的static代码块,当前类的static
顺序执行父类的普通代码块
父类的构造函数
当前类普通代码块
当前类的构造函数
静态代码块只会执行一次
class Parent{
static {
System.out.println("Parent+静态代码块");
}
{
System.out.println("Parent+普通代码块");
}
public Parent(){
System.out.println("Parent+构造");
}
}
class Son extends Parent{
static {
System.out.println("Son+静态代码块");
}
{
System.out.println("Son+普通代码块");
}
public Son(){
System.out.println("Son+构造");
}
}
class Test{
public static void main(String[] args) {
Son son = new Son();
System.out.println("==================================");
Parent parent = new Son();
System.out.println("==================================");
Parent parent1 = new Parent();
}
}
结果
Parent+静态代码块
Son+静态代码块
Parent+普通代码块
Parent+构造
Son+普通代码块
Son+构造
==================================
Parent+普通代码块
Parent+构造
Son+普通代码块
Son+构造
==================================
Parent+普通代码块
Parent+构造