根据java.util.Map的Java-Doc,hashCode
类重写了equals
和Object
方法。但是接口不会从Object
类继承,所以Map
接口如何覆盖Object
类'方法
答案 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。 (即使它们没有按预期工作,如果你没有在实现类中覆盖它们)