更新時(shí)間:2024-04-21 15:01:11 來源:動力節(jié)點(diǎn) 瀏覽2306次
在 Java 中,向上轉(zhuǎn)型和向下轉(zhuǎn)型都是對象類型的轉(zhuǎn)換方式。
向上轉(zhuǎn)型是將一個子類對象轉(zhuǎn)換為它的父類類型,可以理解為子類對象變?yōu)楦割悓ο螅部梢苑Q為自動類型轉(zhuǎn)換。這種轉(zhuǎn)型是安全的,因?yàn)樽宇悓ο缶哂懈割悓ο蟮乃袑傩院头椒ǎ钥梢灾苯淤x值給父類類型的變量。語法如下:
父類類型 變量名 = new 子類類型();
Animal animal = new Dog();
這里將一個 Dog 對象轉(zhuǎn)換為它的父類 Animal 類型,可以通過 Animal 對象來調(diào)用 Dog 類的方法。
向下轉(zhuǎn)型是將一個父類對象轉(zhuǎn)換為它的子類類型,需要使用強(qiáng)制類型轉(zhuǎn)換符進(jìn)行轉(zhuǎn)換,也稱為強(qiáng)制類型轉(zhuǎn)換。這種轉(zhuǎn)型是有風(fēng)險(xiǎn)的,因?yàn)楦割悓ο罂赡懿⒉皇且粋€子類對象,如果進(jìn)行強(qiáng)制類型轉(zhuǎn)換會拋出 ClassCastException 異常。語法如下:
子類類型 變量名 = (子類類型) 父類類型變量名;
Animal animal = new Dog();
Dog dog = (Dog) animal;
這里將一個 Animal 對象轉(zhuǎn)換為它的子類 Dog 類型,如果在運(yùn)行時(shí)發(fā)現(xiàn) animal 實(shí)際上不是一個 Dog 對象,就會拋出 ClassCastException 異常。
需要注意的是,向上轉(zhuǎn)型是隱式的,不需要使用強(qiáng)制類型轉(zhuǎn)換符;而向下轉(zhuǎn)型是顯式的,需要使用強(qiáng)制類型轉(zhuǎn)換符,并且需要保證轉(zhuǎn)換的安全性。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743