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