標籤:
1 /* 2 初始化塊:普通初始化塊、靜態初始化塊(類初始化塊) 3 4 下面程式建立了三個類:Root,Mid和Leaf, 5 者三個類都提供了靜態初始化塊和普通初始化塊, 6 而且Mid類裡還是用this調用重載構造區,而 7 Leaf使用super顯示調用父類指定的構造器 8 */ 9 class Root10 {11 static{12 System.out.println("Root的靜態初始化塊");13 }14 15 {16 System.out.println("Root的普通初始化塊");17 }18 public Root()19 {20 System.out.println("Root的無參數的構造器");21 }22 }23 24 class Mid extends Root25 {26 static{27 System.out.println("Mid的靜態初始化塊");28 }29 30 {31 System.out.println("Mid的普通初始化塊");32 }33 public Mid()34 {35 System.out.println("Mid的無參數的構造器");36 }37 public Mid(String msg)38 {39 //通過this調用同一類中重載的構造器40 this();41 System.out.println("Mid的帶參數的構造器,其參數值是:"+msg);42 }43 }44 45 class Leaf extends Mid46 {47 static{48 System.out.println("Leaf的靜態初始化塊");49 }50 51 {52 System.out.println("Leaf的普通初始化塊");53 }54 55 public Leaf()56 {57 //通過super調用父類中有一個字串參數的構造器58 super("瘋狂Java講義");59 System.out.println("執行Leaf的構造器");60 }61 }62 63 class Test64 {65 public static void main(String[] args) 66 {67 new Leaf();68 new Leaf();69 }70 }71 /*72 運行如下:(好好理解理解)73 ---------- 運行 ----------74 Root的靜態初始化塊75 Mid的靜態初始化塊76 Leaf的靜態初始化塊77 Root的普通初始化塊78 Root的無參數的構造器79 Mid的普通初始化塊80 Mid的無參數的構造器81 Mid的帶參數的構造器,其參數值是:瘋狂Java講義82 Leaf的普通初始化塊83 執行Leaf的構造器84 Root的普通初始化塊85 Root的無參數的構造器86 Mid的普通初始化塊87 Mid的無參數的構造器88 Mid的帶參數的構造器,其參數值是:瘋狂Java講義89 Leaf的普通初始化塊90 執行Leaf的構造器91 92 輸出完成 (耗時 0 秒) - 正常終止93 */
《初始化塊:普通初始化塊、靜態初始化塊(類初始化塊)》