亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不明白為什么不能轉化為Cat類型,但是可以轉化為Dog類型

Dog?dog=new?Dog();
Animal?animal=dog;
Dog?dog2=(Dog)animal;
Cat?cat=(Cat)animal;


正在回答

3 回答

  1. 向上類型轉換,也就是小類型到大類型的轉換。這種轉換不需要考慮類型,肯定正確。

  2. 向下類型轉換,也就是大轉小。這種轉換必須考慮類型,也就是只有相同類型才能正確轉換。該類型用instanceof類驗證。

    樓主你所說的就是第二種轉換模式,需要考慮到類型相同,才能正確轉換。就Dog dog2=(Dog)animal;這個轉換來說是Animal類型轉換為Dog類型的,但是在前面Dog dog=new Dog(); ?Animal animal=dog;已經把Dog類型轉換成Animal類型。所以Dog dog2=(Dog)animal;就是一個相同類型的轉換

    而Cat cat=(Cat)animal;這個不是相同類型轉換,所以是錯誤的

1 回復 有任何疑惑可以回復我~
#1

慕粉0958453215 提問者

非常感謝!
2016-11-30 回復 有任何疑惑可以回復我~
#2

堂吉柯德熊

那什么時候強制類型轉換成立呢(就是Cat類具備什么條件)?
2017-03-03 回復 有任何疑惑可以回復我~
#3

歷飛雨 回復 堂吉柯德熊

強制轉換是一個命題,原本這句話沒錯的。放在特定的地方強制轉換就可能不錯,也可能會錯。因為這類轉換有風險,所以需要根據需要來看是對是錯。
2017-03-03 回復 有任何疑惑可以回復我~
#4

qq_夢盈華爾茲_0 回復 堂吉柯德熊

Cat cat=new Cat(); Animal animal=cat; Cat cat1=(Cat)animal;
2017-06-12 回復 有任何疑惑可以回復我~
查看1條回復

如果Cat和Dog都轉換成Animal,就會覆蓋掉,怎么兩個都轉呢

0 回復 有任何疑惑可以回復我~

跟第一句話有關系??疵靼椎谝痪湓?。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

不明白為什么不能轉化為Cat類型,但是可以轉化為Dog類型

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號