課程
/后端開發(fā)
/Java
/Java入門第三季
其實(shí)我還是沒看懂為什么要重寫haseCode和equals方法,這豈不是說明原生set的contains方法是無效的,不能用的,只能重寫以才能用?
2016-10-03
源自:Java入門第三季 6-2
正在回答
這個(gè)你可以這樣理解 equals方法是父類里面定義的 我們所寫的子類都會繼承他,但是父類里面的equals并不知道你子類中的equals具體怎么判斷的,就像前面我們學(xué)的繼承一樣,我們定義了一個(gè)動(dòng)物類 ,動(dòng)物類里面有say(){System.out.println("動(dòng)物會叫");}這個(gè)方法,他只是說出了一個(gè)動(dòng)物會叫的事實(shí),但是具體繼承他的動(dòng)物,比如狗繼承了他 狗的方法 應(yīng)該重寫他say(){System.out.println(狗汪汪叫);} 而不是輸出從父類中繼承過來的say方法輸出,動(dòng)物會叫,這樣不合理,我們重寫是為了更適合現(xiàn)在的需求,希望對你有幫助。
不是,源生的默認(rèn)比較的是兩個(gè)對象的地址,也就是相當(dāng)于===,判斷是不是同一個(gè)對象,改進(jìn)為如果兩個(gè)對象的value相等,他們的比較就返回true,也就相等。
舉報(bào)
Java中你必須懂得常用技能,不容錯(cuò)過的精彩,快來加入吧
1 回答測試Set的contains方法
3 回答關(guān)于list contains方法
1 回答List中contains()方法和indexOf()方法的區(qū)別?
5 回答為何Set中的contains 方法運(yùn)用的是hashCode+equals的模式 而List里面是equals的 模式?
1 回答iterator與set方法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-10-05
這個(gè)你可以這樣理解 equals方法是父類里面定義的 我們所寫的子類都會繼承他,但是父類里面的equals并不知道你子類中的equals具體怎么判斷的,就像前面我們學(xué)的繼承一樣,我們定義了一個(gè)動(dòng)物類 ,動(dòng)物類里面有say(){System.out.println("動(dòng)物會叫");}這個(gè)方法,他只是說出了一個(gè)動(dòng)物會叫的事實(shí),但是具體繼承他的動(dòng)物,比如狗繼承了他 狗的方法 應(yīng)該重寫他say(){System.out.println(狗汪汪叫);} 而不是輸出從父類中繼承過來的say方法輸出,動(dòng)物會叫,這樣不合理,我們重寫是為了更適合現(xiàn)在的需求,希望對你有幫助。
2016-10-03
不是,源生的默認(rèn)比較的是兩個(gè)對象的地址,也就是相當(dāng)于===,判斷是不是同一個(gè)對象,改進(jìn)為如果兩個(gè)對象的value相等,他們的比較就返回true,也就相等。