Java中 类、变量、块、构造函数等的初始化顺序
class Parent {
private static String parentStaticField = "父类 静态变量";
static {
System.out.println(parentStaticField);
System.out.println("父类 静态语句块");
}
private String parentField = "父类 实例变量";
{
System.out.println(parentField);
System.out.println("父类 普通语句块");
}
public Parent() {
System.out.println("父类 构造函数");
}
}
public class Child extends Parent {
private static String childStaticField = "子类 静态变量";
static {
System.out.println(childStaticField);
System.out.println("子类 静态语句块");
}
private String childField = "子类 实例变量";
{
System.out.println(childField);
System.out.println("子类 普通语句块");
}
public Child() {
System.out.println("子类 构造函数");
}
public static void main(String[] args) {
new Child();
}
}
run: