Interface java.util.Map是否覆盖Object类中的hashCode()和equals()

时间:2016-09-27 16:42:23

标签: java oop object dictionary inheritance

根据java.util.Map的Java-Doc,hashCode类重写了equalsObject方法。但是接口不会从Object类继承,所以Map接口如何覆盖Object类'方法

3 个答案:

答案 0 :(得分:5)

@Override注释特别考虑了从Object继承的方法:

引用Java语言规范,§9.6.4.4 @Override

  

如果使用注释@Override注释方法声明,但该方法未覆盖或实现在超类型中声明的方法,或不是覆盖等效于public方法Object ,发生编译时错误。

这意味着@Override可以注释将在实现类中从Object继承的接口方法,即使接口本身不是从Object继承。

它用作防止意外声明与Object方法冲突的接口方法的安全措施。

答案 1 :(得分:1)

Javadoc意味着每个实现类都应该重写方法以实现Javadoc中记录的行为。

答案 2 :(得分:0)

这是因为接口无法作为接口实例化。您将它用作接口,但JVM引用实现接口的Object实例,因此作为Object,它具有toString,hashCode和equals。 (即使它们没有按预期工作,如果你没有在实现类中覆盖它们)