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

2022-08-31 04:25:15

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

用注释标记每个被覆盖的方法似乎有些过分。是否有某些编程情况需要使用 ,而其他编程情况则不应使用 ?@Override@Override@Override


答案 1

每次重写方法时都使用它,以获得两个好处。这样做是为了可以利用编译器检查来确保在你认为自己重写某个方法时,它确实重写了某个方法。这样,如果您犯了拼写错误的方法名称或参数未正确匹配的常见错误,系统将警告您该方法实际上并没有像您想象的那样重写。其次,它使代码更易于理解,因为当方法被覆盖时,它更明显。

此外,在 Java 1.6 中,您可以使用它来标记方法何时实现接口以获得相同的好处。我认为有一个单独的注释(如)会更好,但总比没有好。@Implements


答案 2

我认为它最有用的是作为编译时提醒,该方法的意图是重写父方法。例如:

protected boolean displaySensitiveInformation() {
  return false;
}

您经常会看到类似于上述方法的内容,该方法重写基类中的方法。这是此类的一个重要实现细节 -- 我们不希望显示敏感信息。

假设此方法在父类中更改为

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

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

为了回答您的问题:如果超类中缺少具有相同签名的方法表明存在错误,则应使用@Override注释。


推荐