Java對象向上轉型和向下轉型


1 向上轉型(不需要強制轉換): 由抽象度低的類向抽象度高的類轉型(子類—父類)

好處:可以操作和使用子類繼承或重寫的方法

失處:失去對子類新增成員變量和新增成員方法的操作和使用

 

2 向下轉型(需要強制轉換): 由抽象度高的類向抽象度低高的類轉型(父類—子類)

sub s=(sub)new Father();//運行時出錯,編譯通過(父類不可以強制轉換成子類,子類包含父類所沒有的變量和方法)

異常:Exception in thread "main" java.lang.ClassCastException:

轉換對象是在運行時進行轉換的



 

編譯運行都正常通過

因為此時f是一個子類實體對象,有具體的引用地址,強制轉換成子類變量,引用地址傳遞給s

3 可以使用 引用變量 instanceof 類名 來判斷該引用型變量所“指向”的對象是否屬於該類或該類的子類。

 

 

 

父類引用指向子類對象。子類和父類中定義同名的變量時,僅僅是隱藏了,變量沒有多態性;而對於覆蓋的方法,Java表現出多態性,會調用更具體的子類里面的方法,無論從哪里調用,無論使用什么引用類型調用。(引用)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM