正文
本文主要描述下static修饰的成员属性,方法块,方法在有继承情况下的内存加载顺序。
案例:
public class People {
private final static String parentStaitc = "父类的静态成员属性";
public People() {
System.out.println("父类构造方法");
}
static{
System.out.println(parentStaitc);
System.out.println("父类静态代码块");
}
}
public class Child extends People {
private final static String childStaitc = "子类的静态成员属性";
public Child() {
System.out.println("子类构造方法");
}
static{
System.out.println(childStaitc);
System.out.println("子类静态代码块");
}
}
public static void main(String[] args) {
People people = new Child();
}
输出
父类的静态成员属性
父类静态代码块
子类的静态成员属性
子类静态代码块
父类构造方法
子类构造方法
补充一点:对于接口的初始化,只有当子接口用到父接口的变量时才会去初始化父接口。