洛陽網(wǎng)站建設(shè)首選洛陽銘信科技佛山seo按效果付費(fèi)
向上轉(zhuǎn)型:父類引用指向子類對象
?定義A B C D 四個類,分級繼承
對象 a 的編譯類型是A,運(yùn)行類型是B,A是B的父類,父類的引用 a 指向的是B這個子類的對象,因為new的是B這個類,創(chuàng)建的也就是B這個類的對象,這就是向上轉(zhuǎn)型
?我還可以這樣,將a指向C ,D類的對象,也是向上轉(zhuǎn)型,只要運(yùn)行類型是編譯類型的子類就可以
需要注意的是:引用 a 的編譯類型(此時是A),是不能改變的,編譯類型在定義引用時就已經(jīng)確定了,就像是人的親生父親,是不能改變的,一生下來就確定了,除非向下轉(zhuǎn)型,而運(yùn)行類型就像是義父,可以改變;
向下轉(zhuǎn)型:父類對象(編譯類型)轉(zhuǎn)成子類對象
向下轉(zhuǎn)型有點類似于數(shù)據(jù)類型的強(qiáng)制類型轉(zhuǎn)換
?將a 的編譯類型強(qiáng)制轉(zhuǎn)換為B類型,并用一個引用aa接收
需要注意:?
1.向下轉(zhuǎn)型不能低于初始定義的運(yùn)行類型
?在這里也就是括號里的類不能低于B類,否則運(yùn)行時會報錯
2.編譯類型不能低于運(yùn)行類型
這樣
?
或者是這樣
?
?都是錯的
3.括號里的類不能高于初始運(yùn)行類型類
?雖然不會報錯,但是此時aa的運(yùn)行類型任然是C
?4.最低的向下轉(zhuǎn)型
?