public class A {
private C c = new C();
A() {
System.out.println("A1");
}
{
System.out.println("A2");
}
static {
System.out.println("A3");
}
private C c2 = new C();
}
public class B extends A {
private C c = new C();
B() {
System.out.println("B1");
}
{
System.out.println("B2");
}
static {
System.out.println("B3");
}
public static void main(String[] args) {
B a = new B();
}
}
public class C {
C(){
System.out.println("C");
}
}
执行结果
A3
B3
C
A2
C
A1
C
B2
B1
执行顺序:先执行父类static->子类static->父类函数->父类的构造方法->子类函数->子类构造方法