当我们实现一个接口时,我们注入(或接受)该接口定义的合同。
Equalable&
Hashable是两个不同的合同。但是,如果我们仔细观察,就会发现它们彼此依赖,这意味着它们是的一部分
singleinterface,类似
EqualableAndHashable。
现在显而易见的问题是,它们是否应该成为此新
EqualableAndHashable界面的一部分
Object?
让我们找出答案。我们
==(等于运算符)检查两个对象的相等性。
==运算符确认两个不同图元/对象的值/引用是否相等。但这并不总是可能仅通过与
==操作员确认来回答。
现在的问题是,是否应该通过接口或对象类的一部分来注入相等性(也就是契约)?
如果我们看一看,我们不能只说:
TypeX不保证平等合同。
如果某些对象类型提供相等性而某些对象不提供相等性,则将变得混乱。这意味着of的对象
TypeX必须遵守平等契约,这对于所有其他对象类型也是如此。因此,它绝不能从接口注入相等性,因为缺省情况下,相等性应该是任何对象的合同的一部分,否则它将造成混乱。
因此,我们需要Objects提出的实现
equals。但是它不能仅实现
equals方法,还需要实现
hashpre方法。



