覆盖equals时要覆盖hascode方法.另外覆盖hascode方法能够使的基于散列的集合,如hashtable,hashMap,hashSet分布的更均匀.java
通常重写是将其关键域的hash加起来.这样能获得一个比较好的hash值.设计
在equal对象时,这样能避免相赞成义的对象在比较hash时就没法继续进行比较.调试
通常而言,toString()方法返回的是对象的类名+无符号的十六进制表示法,但在java程序调试中,内存地址没太大的做用.code
因此,覆盖toString()方法,将其关键字段输出,这有利于调试跟踪.对象
通常不建议覆盖,不必定能很好的实现.继承
为了继承设计的类,应该将其clone方法设计为protected ,且抛出CloneNotSupportException异常,且不实现Clonable接口接口
若是要实现该方法,则须要实现Clonable接口.复杂的对象不只要拷贝其结构,还有拷贝他的数据.并且还不能调用构造器.内存
因此,通常用拷贝构造器或拷贝工厂实现该功能hash