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

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

Dog other = (Dog) obj;類型都一樣了,為什么還要轉換?????

//如果另一個對象和當前對象類型都不一樣,那么肯定不相等,返回false
if (getClass() != obj.getClass())
return false;

//到這一步,傳進來的對象肯定和當前對象類型一樣了,那么為什么還要有下面的轉換呢????????(求解)
Dog other = (Dog) obj;

正在回答

4 回答

大概是說,obj可能是父類的一個應用,eg:Animal obj=new Dog();

說錯了請改正!

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

如果繁星能來到我身邊

寫錯了,是“引用”
2016-04-27 回復 有任何疑惑可以回復我~

http://blog.csdn.net/kaiwii/article/details/8042488? ? 多態的父類引用指向子類對象


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

前面只是判斷了類對象是否一致 ,但是并不能保證類的對象也就是屬性的值是否相同,如果屬性的值不同就會返回false,提示兩個對象不相等

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

這個是多態

if (getClass() != obj.getClass())
return false; 只是證明了 obj是Dog這個類的對象,但是多態的父類引用指向子類對象 這時的obj也滿足上面的條件

所以就需要類型強轉

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

舉報

0/150
提交
取消

Dog other = (Dog) obj;類型都一樣了,為什么還要轉換?????

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

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

幫助反饋 APP下載

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

公眾號

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