1. 程式人生 > >JAVA向上轉型和向下轉型

JAVA向上轉型和向下轉型

子類 font new ont java向上轉型 clas 之間 string output

  最近在看JAVA編程思想,之前學的JAVA只能算是皮毛,大概看到第七章繼承時出現了個名詞-向上轉型。所以就來討論下向上和向下轉型的內容和意義,內容會隨著我看書的進度一直更新的。

  向上轉型

  按照JAVA編程思想中的表述,“為新類提供方法”並不是繼承技術中最重要的方面,最重要的是表現新類和基類之間的關系。概況為 新類是現有類的一種類型。

   貼段書上的代碼,稍加改動

class Instrument{ //父類
    public void play(){};
    static void tune(Instrument i){
        i.play();
        System.out.println(i.toString()
+".play()"); } } public class Wind extends Instrument{ //子類繼承父類 public static void main(String[] args) { Wind flute=new Wind(); Instrument.tune(flute); } }

//output:

[email protected]()



   技術分享註意,Instrument.tune(flute),調用的是一個wind引用,這時,導出類也就轉換成基類。

  具體意義個人理解比如上文貼的代碼,父類Instrument已經有了tune方法,但是父類tune方法中調用的是Instrument對象。這時如果子類Wind類想使用tune方法需要重寫tune,但是向上轉型就免去了這種麻煩。

JAVA向上轉型和向下轉型