class A { static { System.out.print("1"); } public A() { System.out.print("2"); } } class B extends A{ static { System.out.print("a"); } public B() { System.out.print("b"); } } public class Hello { public static void main(String[] args) { A ab = new B(); ab = new B(); } }
执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后
调用父类构造器,再初始化非静态成员,最后调用自身构造器。