你什么时候使用Java的@Override注释以及为什么?

15 浏览
0 Comments

你什么时候使用Java的@Override注释以及为什么?

已锁定。这个问题及其答案被锁定,因为这个问题是与主题无关的但具有历史意义。它目前不接受新的回答或交互。

使用Java的@Override注释的最佳实践是什么?

对每个重载的方法都打上@Override注解似乎有些过度。在某些编程情况下,是否需要使用@Override,是否应该永远不使用@Override

admin 更改状态以发布 2023年5月21日
0
0 Comments

我认为它最有用的作用是在编译时提醒方法的意图是覆盖父类方法。举个例子:

protected boolean displaySensitiveInformation() {
  return false;
}

你经常会看到类似上面的方法,它覆盖了基类中的一个方法。这是这个类的一个重要实现细节--我们不希望敏感信息被显示出来。

假设这个方法在父类中被改变为

protected boolean displaySensitiveInformation(Context context) {
  return true;
}

这个改变不会导致任何编译时错误或警告-但它完全改变了子类的预期行为。

回答你的问题:如果缺少同名方法的超类表明存在错误,那么你应该使用@Override注解。

0
0 Comments

每当你重写一个方法时,都应该使用它有两个好处。这样做可以利用编译器检查确保你实际上正在重写方法。这样,如果你犯了一个常见的错误——拼错了方法名或者没有正确匹配参数——编译器会警告你该方法实际上并没有按你想的那样被重写。其次,这会使你的代码更易于理解,因为重写方法会更明显。

此外,在Java 1.6中,你也可以使用它来标记一个方法实现了某个接口,这也有同样的好处。我认为最好还是有一个单独的注解(比如@Implements),但是这总比没有强。

0