package test;class Unit...{
public Unit(String msg)...{
System.out.println("Unit constructor "+msg);
}
}
class Super...{
private Unit u = new Unit("inside Super");
private static Unit su1 = new Unit("static field before static block");
static...{
System.out.println("Super static ");
}
public Super()...{
System.out.println("Super constructor");
}
private static Unit su2 = new Unit("static field after static block");
}
public class 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
*/
public static void 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