equals方法的要求:
a. 自反性 :对于任何非空的x,x.equals(x)都应该返回true
b. 对称性 :对于任何引用x和y,当且仅当x.equals(y)返回true时,y.equals(x)也应该返回true
c. 传递性 :对于任何引用x,y,z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true
d. 一致性 :如果x和y的引用没有发生变化,那么反复调用x.equals(y)的结果应该相同
e.对于任何非空的引用x,x.equals(null)应该返回false
.
在子类定义equals方法时使用super.equals方法进行 重载 复写。
一般来说,重写了equals方法就同时也要重写 hashCode 方法
重写hashCode方法的原因
.
或者有更简单的方法
.
That’s all