顺序:
父类的静态,子类静态,父类非静态,父类构造方法,子类非静态,子类构造方法。
public class A { static String name = "cjj"; int age = 22; public A() { System.out.println(name +" "+ age); } public static void main(String[] args) { B b = new B(); } } class B extends A{ static String name = "lnn"; int age = 21; public B() { System.out.println(name +" "+ age); } }
运行结果:
cjj 22
lnn 21
原理:
类在加载的时候,先加载父类,再加载子类。加载父类的时候,先加载父类的静态成员,再加载子类的静态成员,再加载父类的非静态成员和构造方法,最后加载子类的非静态成员和构造方法。