覆蓋equals時要覆蓋hascode方法.另外覆蓋hascode方法能夠使的基於散列的集合,如hashtable,hashMap,hashSet分佈的更均勻.java
通常重寫是將其關鍵域的hash加起來.這樣能獲得一個比較好的hash值.設計
在equal對象時,這樣能避免相贊成義的對象在比較hash時就沒法繼續進行比較.調試
通常而言,toString()方法返回的是對象的類名+無符號的十六進制表示法,但在java程序調試中,內存地址沒太大的做用.code
因此,覆蓋toString()方法,將其關鍵字段輸出,這有利於調試跟蹤.對象
通常不建議覆蓋,不必定能很好的實現.繼承
爲了繼承設計的類,應該將其clone方法設計爲protected ,且拋出CloneNotSupportException異常,且不實現Clonable接口接口
若是要實現該方法,則須要實現Clonable接口.複雜的對象不只要拷貝其結構,還有拷貝他的數據.並且還不能調用構造器.內存
因此,通常用拷貝構造器或拷貝工廠實現該功能hash