向下转型和向上转型(易理解)
生活随笔
收集整理的這篇文章主要介紹了
向下转型和向上转型(易理解)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
向上轉型:父類引用指向子類對象
?定義A B C D 四個類,分級繼承
對象 a 的編譯類型是A,運行類型是B,A是B的父類,父類的引用 a 指向的是B這個子類的對象,因為new的是B這個類,創建的也就是B這個類的對象,這就是向上轉型
?我還可以這樣,將a指向C ,D類的對象,也是向上轉型,只要運行類型是編譯類型的子類就可以
需要注意的是:引用 a 的編譯類型(此時是A),是不能改變的,編譯類型在定義引用時就已經確定了,就像是人的親生父親,是不能改變的,一生下來就確定了,除非向下轉型,而運行類型就像是義父,可以改變;
向下轉型:父類對象(編譯類型)轉成子類對象
向下轉型有點類似于數據類型的強制類型轉換
?將a 的編譯類型強制轉換為B類型,并用一個引用aa接收
需要注意:?
1.向下轉型不能低于初始定義的運行類型
?在這里也就是括號里的類不能低于B類,否則運行時會報錯
2.編譯類型不能低于運行類型
這樣
?
或者是這樣
?
?都是錯的
3.括號里的類不能高于初始運行類型
?雖然不會報錯,但是此時aa的運行類型任然是C
?4.最低的向下轉型
總結
以上是生活随笔為你收集整理的向下转型和向上转型(易理解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创业前期怎么做个简单易行的计划?
- 下一篇: Java众神之路(2)-标志符