我知道java中的@Override注释只是告诉编译器在编译期间检查它是否实际上覆盖了超类中的方法。
从我读过的文章:https://dzone.com/articles/how-annotations-work-java。
@Override注释定义仅限于以下内容:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
这个注释定义没有告诉编译器在超类中查找相同方法签名的逻辑。
是否在java编译器中为相同的方法签名定义检查它的超类的逻辑?
答案 0 :(得分:2)
它只是对编译器的一个提示。通过使用@Override
进行批注,您可以告诉编译器您已从超类中覆盖了一个方法。然后,编译器会检查您是否确实覆盖了此方法,如果您没有,则会给出警告。这对确保正确拼写特别有用。编译器实际上实现了这个逻辑。