乙個類進行初始化或例項化時,一定會先對其父類進行初始化或例項化。
子類進行初始化:(1)父類進行初始化
(2)子類的靜態成員變數、靜態**塊進行初始化
父類進行初始化:(1)父類的靜態成員變數、靜態**塊進行初始化
注意:靜態成員變數、靜態**塊有先後順序,誰在上先初始化誰
子類進行例項化:(1)父類進行初始化
(2)子類進行初始化
(3)父類進行例項化
(2)子類的非靜態成員變數、非靜態**塊執行,構造方法執行
父類進行例項化:(1)父類的非靜態成員變數、非靜態**塊執行,構造方法執行
注意:非靜態成員變數、非靜態**塊有先後順序,誰在上先執行誰,構造方法總是最後執行。
特殊:當子類重寫了父類方法,父類例項化過程中使用到了此方法,會執行被重寫的方法
父類aa
package test;
public class aa
public aa()
public int test01()
public static int test02()
}
子類bb
package test;
public class bb extends aa
public bb()
public int test01()
public static int test02()
}
測試
package test;
public class test
}
類初始化和例項初始化過程
類初始化過程 乙個類要建立例項需要先載入並初始化該類 main方法所在的類需要先載入和初始化 乙個子類要初始化需要先初始化父類 乙個類初始化就是執行 方法 由靜態類變數賦值 和靜態 塊組成 靜態類變數賦值 和靜態 塊從上往下執行 方法只執行一次 例項初始化過程 例項初始化就是執行 方法 方法可能過載...
類初始化和例項化過程
1 乙個類要建立例項需要先載入並初始化該類 main方法所在的類需要先載入和初始化 2 乙個子類要初始化需要先初始化父類 3 乙個類初始化就是執行clinit 方法 clinit每個類都有,自動生成 中文名類初始化方法 clinit方法由靜態類變數顯示賦值 和靜態 塊組成 類變數顯示賦值 和靜態 塊...
類初始化過程
class x class y public class z extends x public static void main string args a zyxxb zyxyc yxyzd xyzx解答 靜態變數 靜態 塊 main方法 非靜態變數 塊 構造方法 初始化過程 1.初始化父類中的靜...