java中的“ @Override”是什么?
public class Animal { public void eat() { System.out.println("I eat like a generic Animal."); }
}
public class Wolf extends Animal {
@Override
public void eat() { System.out.println("I eat like a wolf!"); }
}
是否@Override
确实有一些功能,或者它只是有点对此有何评论?
回答:
从有关注解的Java教程中:
—
@Override
注释告知编译器该元素旨在覆盖超类中声明的元素(覆盖方法将在名为“接口与继承”的课程中进行讨论)。// mark method as a superclass method
// that has been overridden
@Override
int overriddenMethod() { }
虽然在重写方法时不需要使用此批注,但它有助于防止错误。如果标有的方法
@Override
无法正确覆盖其父类之一中的方法,则编译器将生成错误。
让我们看一下Java语言规范9.6.1.4
Override中给出的示例。假设equals
在这种情况下,您想覆盖一个方法,但是您写道:
public boolean equals(Foo that) { ... }
代替:
public boolean equals(Object that) { ... }
尽管此代码是合法的,但用equals
方法注释声明@Override
将触发编译时错误,因为实际上您没有覆盖它,而是在重载它。这可能会导致讨厌的错误,并且Override
注释类型有助于及早发现它们。
以上是 java中的“ @Override”是什么? 的全部内容, 来源链接: utcz.com/qa/397342.html