如何为子类强制使用@Override?

时间:2015-11-05 15:54:36

标签: java oop

一个例子:在Android中,通常当你试图覆盖Activity超类的方法时,你必须有@Override注释,这是必须的。他们是怎么做到的?

我想在我的subclss覆盖方法中严格使用@Override。我需要在父类中进行哪些更改才能强制执行此操作?

我想强制执行注释(不只是覆盖基本方法)。

4 个答案:

答案 0 :(得分:2)

您可以在CI期间使用代码质量检查工具执行此操作,但您可能必须构建自己的(这是中等复杂度的任务),或将该功能添加到现有代码质量检查器之一。如果没有注释,那么你只是失败了构建。

答案 1 :(得分:0)

你不需要@override注释,我已经制作了插件"需要它们"没有它。

答案 2 :(得分:0)

如果要强制覆盖,则意味着将隐藏该方法的父实现。所以在任何情况下都不会被调用,除非来自被覆盖的方法本身。

这意味着您只需声明方法abstract(以及class):

abstract class Foo {
  public abstract void overrideMe();
}

答案 3 :(得分:0)

没有办法强制覆盖任何人。如果您创建类或方法abstract,那么覆盖是强制性的。但是,您不需要提供您希望子类和/或不幸的维护无人机遵循的实现,并根据它们派生自己的覆盖。如果这个类不是抽象的,那么没有人被迫覆盖任何东西,并且可以根据自己的喜好使用原始方法。

@override注释始终是可选的,无论是覆盖抽象方法还是具体方法。所有注释都是可选的,因为它们是元数据,仅对人类有用,编译器完全忽略它们,就像注释和空格一样。