class B static
class A static
Class A main
Class B create
class A create
Class B create
解释:执行顺序为 B类(父类)静态代码 -> A类(子类)静态代码 -> A类的主函数main -> B类构造函数 -> A类构造函数 -> B类构造函数
注意了,静态代码段只执行了一次! 这跟继承中的构造函数是不一样的!
public class A extends B {
static {
System.out.println("class A static");
}
public static void main(String[] args) {
System.out.println("Class A main");
new A();
new B();
}
A() {
System.out.println("class A create");
}
}
public class B {
static {
System.out.println("class B static");
}
B() {
System.out.println("Class B create");
}
}
public class A extends B {
static {
System.out.println("class A static");
}
public static void main(String[] args) {
System.out.println("Class A main");
new A();
new B();
}
A() {
System.out.println("class A create");
}
}