在我编写派生类时,覆盖一些超类方法时,我发现@Override
注释非常有帮助。基本上,编译器可以早期检测到我的程序中的缺陷,这总是一件好事。但是为什么Java中没有@Implements
注释呢?
在我编写派生类时,覆盖一些超类方法时,我发现@Override
注释非常有帮助。基本上,编译器可以早期检测到我的程序中的缺陷,这总是一件好事。但是为什么Java中没有@Implements
注释呢?
@Override
用于接口定义的方法。(是的,你是在"实现"而不是"覆盖" ... 但@Override
两种情况都适用)implements
关键字,并且如果该接口中存在任何方法,则我们重写这些方法以提供实现。@Override
注解,因为在两种情况下(类或接口)我们都会进行重写。implements
。但是对于覆盖(override),没有这样的关键字。 @Override
不是关键字,但工作方式类似。
@Override
是一种形式上的东西,它并不是真正必需的。如果你没有这个注解,编译器也不会失败。然而,当你实现一个接口时,如果你没有实现该接口中定义的每个方法,编译器就会报错。 - Makotojavac -Xlint:overrides
(或者只有-Xlint
),它会告诉你相关信息,所以也许他正在这么做。 - Brian Roach