静态属性和静态块在子类跟父类中的执行顺序
静态属性和静态块在子类和父类中的执行顺序
1.子类test1
public class Test1 extends Test2 { private static final class Factory { //在main方法执行Test1.factory()的时候调用下面这个属性的初始化 public static final Test1 INSTANCE = new Test1(); } private static String dd = "aaa"; //第三步执行 private static final Test1 tt = new Test1();//第四步执行 static { System.out.println("static 2"); //第五步执行 } public static void main(String[] args) { Test1.factory(); } public static Test1 factory() { return Factory.INSTANCE; } }
父类 test2
public class Test2 { private static final Test2 tt2 = new Test2(); //第一步执行 static { System.out.println("static t2"); //第二步执行 } public Test2() { System.out.println("Test2"); } }
在执行test1的main方法时,加载静态属性的顺序