W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
類從其超類繼承所有非私有靜態(tài)方法。
重定義類中繼承的靜態(tài)方法稱為方法隱藏。
子類中的重定義靜態(tài)方法隱藏其超類的靜態(tài)方法。
在類中重定義非靜態(tài)方法稱為方法覆蓋。
關(guān)于方法隱藏的重定義方法(名稱,訪問級別,返回類型和異常)的所有規(guī)則與方法覆蓋相同。
class MySuper { public static void print() { System.out.println("Inside MySuper.print()"); } } class MySubclass extends MySuper { public static void print() { System.out.println("Inside MySubclass.print()"); } } public class Main { public static void main(String[] args) { MySuper mhSuper = new MySub(); MySubclass mhSub = new MySubclass(); MySuper.print(); MySubclass.print(); ((MySuper) mhSub).print(); mhSuper = mhSub; mhSuper.print(); ((MySubclass) mhSuper).print(); } }
上面的代碼生成以下結(jié)果。
類中的字段聲明(靜態(tài)或非靜態(tài))在其父類中隱藏具有相同名稱的繼承字段。
在字段隱藏的情況下,不考慮字段的類型及其訪問級別。
字段隱藏僅基于字段名稱。
class MySuper { protected int num = 100; protected String name = "Tom"; } class MySub extends MySuper { public void print() { System.out.println("num: " + num); System.out.println("name: " + name); } } class MySub2 extends MySuper { // Hides num field in MySuper class private int num = 200; // Hides name field in MySuper class private String name = "Jack"; public void print() { System.out.println("num: " + num); System.out.println("name: " + name); } } public class Main { public static void main(String[] args) { MySub fhSub = new MySub(); fhSub.print(); MySub2 fhSub2 = new MySub2(); fhSub2.print(); } }
上面的代碼生成以下結(jié)果。
以下代碼顯示了如何使用super關(guān)鍵字訪問超類的隱藏字段
class MySuper { protected int num = 100; protected String name = "Tom"; } class MySub extends MySuper { // Hides the num field in MySuper class private int num = 200; // Hides the name field in MySuper class private String name = "Jack"; public void print() { System.out.println("num: " + num); System.out.println("super.num: " + super.num); System.out.println("name: " + name); System.out.println("super.name: " + super.name); } } public class Main { public static void main(String[] args) { MySub s = new MySub(); s.print(); } }
上面的代碼生成以下結(jié)果。
字段隱藏發(fā)生在一個類聲明一個變量與來自其超類的繼承變量具有相同名稱的時候。
字段隱藏僅基于字段的名稱。
類應(yīng)該使用關(guān)鍵字super來訪問超類的隱藏字段。
類可以使用簡單的名稱來訪問其主體中的重定義字段
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: