class B {
public B() {
super();
System.out.println("构造器B");
}
{
System.out.println("普通的代码块B");
}
static{
System.out.println("静态代码块B");
}
}
public class ClassA extends B {
public ClassA() {
super();
System.out.println("构造器A");
}
{
System.out.println("普通的代码块A");
}
static{
System.out.println("静态代码块A");
}
public static void main(String[] args) {
ClassA a=new ClassA();
}
}
运行结果如下:
静态代码块B
静态代码块A
普通的代码块B
构造器B
普通的代码块A
构造器A
可以看到静态代码块被优先执行,然后是父类的普通代码块,父类构造器,然后才是子类的普通代码块,子类构造器