執行clinit方法 main方法 所在的類需要 先加載和初始化 子類的初始化需要先初始化父類 類初始化就是指向<clinit>()方法 ①、<clinit>()方法由靜态 類變量顯示指派代碼 和 靜态代碼塊 組成 ②、類變量顯示指派代碼 和 靜态代碼塊代碼 從上到下 循序執行(<cliinit>()方法内順序執行) ③、<clinit>()方法 隻執行一次
執行個體初始化會執行<init>方法(上面是clinit即類的初始化) <init>()方法可能重載有多個,有幾個構造器就有幾個<init>方法 <init>()方法由非靜态執行個體變量顯示指派代碼塊和非靜态代碼塊、對應構造器代碼組成 非靜态執行個體變量顯示指派代碼和非靜态代碼塊代碼從上到下順序執行,對應構造器代碼最後執行 每次建立執行個體對象,調用對應構造器,執行的就是對應的<init>()方法 <init>()方法的首行是super()或super(實參參數清單)對應父類的<init>()方法

例題分析: 執行下面的Son類中的main方法會輸出什麼? Father.java檔案
Son.java檔案 執行下面的代碼會輸出什麼?