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

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

為什么dog就可以強制類型轉換,而cat就不行?不都是動物的子類么?

為什么dog就可以強制類型轉換,而cat就不行?不都是動物的子類么?

正在回答

5 回答

因為你沒有創建cat類型的對象你創建cat對象就可以強制轉換

Cat cat= new Cat();創建這個就可以轉換了;

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

能不能轉換請查看instanceof....你明白了這個關鍵字,就明白原因了。

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

他們都是動物 所以貓狗都闊以轉化為動物 但貓狗之間不能轉化 物種不同


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

【對象dog】轉換成【對象animal】,兩個對象的地址是一致的“Dog@……”

Cat類的對象,運行時引用的是應該是“Cat@……”的地址

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

qq_慕九州123895

那為什么不可以是三個同一個地址呢,dog,cat,和animal 對象,我也不太明白,在內存中是怎樣的狀態,求解,謝謝
2019-10-26 回復 有任何疑惑可以回復我~
#2

回鍋鍋包肉 回復 qq_慕九州123895

你沒有搞明白三者之間的關系,animal是父類類型他的子類是dog,和cat 三塊內存 dog和cat沒有關系 。如果同一個內存地址父類會調用子類方法,這樣就違背了規范。規范是父類不能調用子類方法,子類可以調用父類方法。懂了吧
2019-12-22 回復 有任何疑惑可以回復我~

他是將dog對象轉換為父類對象animal,子類可以轉換為父類,初始對象是dog,dog跟cat類是同級別的,所以不能轉換為cat類

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

舉報

0/150
提交
取消

為什么dog就可以強制類型轉換,而cat就不行?不都是動物的子類么?

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

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

幫助反饋 APP下載

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

公眾號

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