JAVA向上轉型和向下轉型
阿新 • • 發佈:2017-09-03
子類 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向上轉型和向下轉型