package test; class Unit...{ public Unit(String msg)...{ System.out.println("Unit constructor "+msg); } } class Super...{ private Unit u =new Unit("inside Super"); privatestatic Unit su1 =new Unit("static field before static block"); static...{ System.out.println("Super static "); } public Super()...{ System.out.println("Super constructor"); } privatestatic Unit su2 =new Unit("static field after static block"); } publicclass Order extends Super...{ static...{ System.out.println("Order static"); } public Unit u =new Unit("inside Order"); public Order()...{ System.out.println("Order constructor"); } /** *//** * @param args */ publicstaticvoid main(String[] args) ...{ // TODO Auto-generated method stub new Order(); } } //输出: //Unit constructor static field before static block //Super static //Unit constructor static field after static block //Order static //Unit constructor inside Super //Super constructor //Unit constructor inside Order //Order constructor
初始化顺序 1、父类static block、static field //看出现的顺序 2、子类static block、static field //看出现的顺序 3、 父类non-static域 4、 父类constructor 5、 子类non-static域 6、 子类constructor