java中的向上轉型和向下轉型

向下轉型:子類引用指向父類引用的子類對象,有點抽象,下面會舉個例子;
向上轉型:父類引用指向子類的對象時稱爲向上轉型;

Employee employee=new Manager();//向上轉型
Manager manager=(Manager)employee;//向下轉型
//編譯、運行通過,因爲employee本來指向的就是Manager對象

Employee employee=new Employee();
Manager manager=(Manager)employee;
//編譯可以通過但是運行會出現一個ClassCastException的錯誤

歸納:

1。父類引用指向子類對象,而子類引用不能指向父類對象。
2。把子類對象直接賦給父類引用叫upcasting向上轉型,向上轉型不用強制轉換。
如:Employee employee=new Manager();
3。把指向子類對象的父類引用賦給子類引用叫向下轉型(downcasting),要強制轉換。
如:Manager manager=(Manager)employee;
其中employee前面的(Manager)必須加上,進行強制轉換。

好處:
向上轉型有利於實現動態綁定,具體的優勢還是要在代碼中實現,這裏就不細說了。

發佈了38 篇原創文章 · 獲贊 33 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章