課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
Dog?dog=new?Dog(); Animal?animal=dog; Dog?dog2=(Dog)animal; Cat?cat=(Cat)animal;
2016-11-22
源自:Java入門第二季 升級版 10-2
正在回答
向上類型轉(zhuǎn)換,也就是小類型到大類型的轉(zhuǎn)換。這種轉(zhuǎn)換不需要考慮類型,肯定正確。
向下類型轉(zhuǎn)換,也就是大轉(zhuǎn)小。這種轉(zhuǎn)換必須考慮類型,也就是只有相同類型才能正確轉(zhuǎn)換。該類型用instanceof類驗(yàn)證。
樓主你所說的就是第二種轉(zhuǎn)換模式,需要考慮到類型相同,才能正確轉(zhuǎn)換。就Dog dog2=(Dog)animal;這個(gè)轉(zhuǎn)換來說是Animal類型轉(zhuǎn)換為Dog類型的,但是在前面Dog dog=new Dog(); ?Animal animal=dog;已經(jīng)把Dog類型轉(zhuǎn)換成Animal類型。所以Dog dog2=(Dog)animal;就是一個(gè)相同類型的轉(zhuǎn)換
而Cat cat=(Cat)animal;這個(gè)不是相同類型轉(zhuǎn)換,所以是錯(cuò)誤的
慕粉0958453215 提問者
堂吉柯德熊
歷飛雨 回復(fù) 堂吉柯德熊
qq_夢盈華爾茲_0 回復(fù) 堂吉柯德熊
如果Cat和Dog都轉(zhuǎn)換成Animal,就會(huì)覆蓋掉,怎么兩個(gè)都轉(zhuǎn)呢
跟第一句話有關(guān)系。看明白第一句話。
舉報(bào)
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
5 回答為什么dog就可以強(qiáng)制類型轉(zhuǎn)換,而cat就不行?不都是動(dòng)物的子類么?
4 回答Cat cat=(Cat)animal;//編譯時(shí)是按Cat類型,為什么運(yùn)行時(shí)是按Dog類型?
2 回答為什么轉(zhuǎn)換成dog可以,而不能轉(zhuǎn)換成cat
1 回答為什么Cat類型無法轉(zhuǎn)換呢?
4 回答本節(jié)例題中animal可以強(qiáng)制轉(zhuǎn)換成Dog類,為什么不能強(qiáng)制轉(zhuǎn)換成Cat類?Cat類和Dog類都是Animal類的子類啊。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-11-30
向上類型轉(zhuǎn)換,也就是小類型到大類型的轉(zhuǎn)換。這種轉(zhuǎn)換不需要考慮類型,肯定正確。
向下類型轉(zhuǎn)換,也就是大轉(zhuǎn)小。這種轉(zhuǎn)換必須考慮類型,也就是只有相同類型才能正確轉(zhuǎn)換。該類型用instanceof類驗(yàn)證。
樓主你所說的就是第二種轉(zhuǎn)換模式,需要考慮到類型相同,才能正確轉(zhuǎn)換。就Dog dog2=(Dog)animal;這個(gè)轉(zhuǎn)換來說是Animal類型轉(zhuǎn)換為Dog類型的,但是在前面Dog dog=new Dog(); ?Animal animal=dog;已經(jīng)把Dog類型轉(zhuǎn)換成Animal類型。所以Dog dog2=(Dog)animal;就是一個(gè)相同類型的轉(zhuǎn)換
而Cat cat=(Cat)animal;這個(gè)不是相同類型轉(zhuǎn)換,所以是錯(cuò)誤的
2017-05-31
如果Cat和Dog都轉(zhuǎn)換成Animal,就會(huì)覆蓋掉,怎么兩個(gè)都轉(zhuǎn)呢
2016-11-22
跟第一句話有關(guān)系。看明白第一句話。