第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

關于equals( )方法重寫的疑問?

重寫equals( )方法時,

if (getClass() != obj.getClass())

return false;

執(zhí)行完后,已經(jīng)保證了原有對象和傳入對象obj的類型相同,

為什么后面仍要執(zhí)行

Dog other = (Dog) obj;

將傳入對象obj轉化為原有對象的Dog類型?

不可以這樣寫嗎?如下:

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

if (age !=?obj.age)

return false;

return true;

}


正在回答

1 回答

Object類是所有類的父類,跟Dog類不是同一類型的。需要向下轉型成Dog類,這樣才能比較。

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

幕布斯9297580 提問者

雖然不確定是否正確,但感覺這個回答邏輯上完全說得通,非常感謝!
2018-08-31 回復 有任何疑惑可以回復我~
#2

忘記過去丶

在判斷完類對象屬性名相同后,我們要比較屬性值。之前我們用的一直是object類的類型進行的比較。而在我們繼續(xù)判斷dog類的屬性值時,如果用object類型,那就沒辦法進行“值”的比較了。所以,應該也轉換成dog類型,這樣才能進行比較??赡苷f的不如1樓簡潔,希望能夠方便你的理解。
2018-10-06 回復 有任何疑惑可以回復我~
#3

weixin_慕仰7456056 回復 忘記過去丶

老師,我還是不明白,調用equals()時,傳入的不就是Dog類嗎,為什么變成了object類了
2019-08-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于equals( )方法重寫的疑問?

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

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號