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