首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 向上轉型實戰:Instrument 與 Wind 的繼承關係與 tune() 多態調用

     編輯:Java 相關知識

核心洞見:繼承表達「是一個」關係

Wind extends Instrument 表示:Wind 對象也是 Instrument 對象。基類所有方法衍生類自動擁有。

tune() 方法與隱式向上轉型

class Instrument {
    void play() {}
    static void tune(Instrument i) { i.play(); }
}
class Wind extends Instrument {}
public class Wind {
    public static void main(String[] args) {
        Wind flute = new Wind();
        Instrument.tune(flute); // 隱式向上轉型:Wind → Instrument
    }
}

為什麼合法?

  • Java 嚴格類型檢查,但 Wind 繼承了 Instrument 的完整接口。
  • tune() 內只調用 play(),Wind 必有此方法(繼承或覆寫)。
  • 向上轉型縮小靜態類型接口,但不會遺漏調用所需方法。

動態綁定實現多態

若 Wind 覆寫 play(),運行期 tune() 調用的是 Wind.play()。這就是「將 Wind 當 Instrument 用,卻得到 Wind 行為」的多態魔力。

關鍵術語

將衍生類引用作為基類引用使用的過程,稱為向上轉型。它是多態運作的前提條件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved