@Override是什么意思?

2022-08-31 13:26:59
public class NaiveAlien extends Alien
{

    @Override
    public void harvest(){}

}

我试图理解我朋友的代码,但我没有得到语法,@Override代码。这有什么作用,为什么我们需要编码?谢谢。


答案 1

对于编译器来说,这是一个提示,让它知道您正在重写父类(或Java 6中的接口)的方法。

如果编译器检测到没有要重写的函数,它将警告您(或错误)。

这对于快速识别拼写错误或 API 更改非常有用。假设您正在尝试重写父类的方法,但拼写它,您的程序将静默地调用基类,如果没有,您将没有任何警告。harvest()harvset()@Override

同样,如果您使用的是库,并且在库的版本 2 中,已被修改为采用整数参数,则您将不再覆盖它。再次,会很快告诉你。harvest()@Override


答案 2

此功能称为注释。 是使用注释让编译器知道的语法,“嘿,编译器,我正在改变harvest在父类中的作用”,然后编译器可以立即说,“伙计,你命名不正确”。在正确命名编译器之前,编译器不会编译。@Override

因此,如果没有此注释,编译器将不会出错,它将被视为新方法声明。此时很难识别错误。@Override


推荐