当前位置: 首页 > 面试题库 >

Java中的@Override是什么?

韩征
2023-03-14
问题内容

@Override除了让编译器检查超类是否具有该方法之外,是否有任何其他理由来注释方法?


问题答案:

如您所描述的,@ Override创建一个编译时检查,以确保方法被覆盖。这对于确保尝试覆盖时不会出现愚蠢的签名问题非常有用。

例如,我看到以下错误:

public class Foo {
  private String id;
  public boolean equals(Foo f) { return id.equals(f.id);}
}

此类按编写方式进行编译,但是将@Override标记添加到equals方法将导致编译错误,因为它不会覆盖Object上的equals方法。这是一个简单的错误,但即使是经验丰富的开发人员也可以避免



 类似资料:
  • 问题内容: 是否确实有一些功能,或者它只是有点对此有何评论? 问题答案: 从有关注解的Java教程中: — 注释告知编译器该元素旨在覆盖超类中声明的元素(覆盖方法将在名为“接口与继承”的课程中进行讨论)。 虽然在重写方法时不需要使用此批注,但它有助于防止错误。如果标有的方法无法正确覆盖其父类之一中的方法,则编译器将生成错误。 让我们看一下Java语言规范9.6.1.4 Override中 给出的示

  • 问题内容: 我试图理解我朋友的代码,但在代码中没有得到语法@Override。这有什么作用,为什么我们需要编码?谢谢。 问题答案: 提示编译器让它知道您正在重写父类的方法(或Java 6中的接口)。 如果编译器检测到没有要覆盖的函数,它将警告您(或错误)。 这对于快速识别输入错误或API更改非常有用。假设您尝试覆盖父类的方法但将其拼写,则程序将以静默方式调用基类,而如果没有,则不会对此发出任何警告

  • 问题内容: 我的问题是非常基本的,为什么我们人们使用注释,此注释的重要性是什么? 在旧的JDK中,为什么它不显示为警告,但是在最新的JDK中,则需要“为什么..”? 问题答案: 假设您有: 您 确实 打算覆盖,但是由于签名中的错误,它不是这样做的。如果使用,则可以让编译器检测故障。它 还会 向任何 阅读 代码的人表明这将覆盖现有方法或实现接口-为他们提供有关当前行为以及重命名该方法可能产生的影响的

  • 问题内容: 在Java或Android中,有@Override注释。这是什么意思?我发现它是在方法来自子类或继承接口的方法时使用的,我想进一步了解,其他是@SuppressWarnings及其Anonation,如果是的话,java使用了多少注释以及用于什么目的。 问题答案: 这个问题在这里也很简洁地得到了回答: Android@Override用法 这是一个注释,可以用来告诉编译器和IDE,您打

  • 问题内容: 使用Java 注释的最佳实践是什么?为什么? 用注解标记每个覆盖的方法似乎是过大的。是否存在某些编程情况要求使用和其他不应该使用的情况? 问题答案: 每次你重写一种方法都有两个好处时使用它。这样做是为了使你能够利用编译器检查的优势,以确保你认为自己确实覆盖了某个方法。这样,如果你犯了拼写错误的方法名称或不正确匹配参数的常见错误,将会警告你方法实际上并没有像你认为的那样覆盖。其次,它使你

  • Java 中 @Override 注解是用来指定方法重写的,只能修饰方法并且只能用于方法重写,不能修饰其它的元素。它可以强制一个子类必须重写父类方法或者实现接口的方法。 使用 @Override 注解示例代码如下: 上述代码第 6 行是重写 Object 类的 toString() 方法,该方法使用 @Override 注解。如果 toString() 不小心写成了 t0String(),那么程序