java static代码段 2

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");
}
}

原文地址:https://www.cnblogs.com/lili1015/p/4647800.html