一个例子:在Android中,通常当你试图覆盖Activity超类的方法时,你必须有@Override注释,这是必须的。他们是怎么做到的?
我想在我的subclss覆盖方法中严格使用@Override。我需要在父类中进行哪些更改才能强制执行此操作?
我想强制执行注释(不只是覆盖基本方法)。
答案 0 :(得分:2)
您可以在CI期间使用代码质量检查工具执行此操作,但您可能必须构建自己的(这是中等复杂度的任务),或将该功能添加到现有代码质量检查器之一。如果没有注释,那么你只是失败了构建。
答案 1 :(得分:0)
你不需要@override注释,我已经制作了插件"需要它们"没有它。
答案 2 :(得分:0)
如果要强制覆盖,则意味着将隐藏该方法的父实现。所以在任何情况下都不会被调用,除非来自被覆盖的方法本身。
这意味着您只需声明方法abstract
(以及class
):
abstract class Foo {
public abstract void overrideMe();
}
答案 3 :(得分:0)
没有办法强制覆盖任何人。如果您创建类或方法abstract
,那么覆盖是强制性的。但是,您不需要提供您希望子类和/或不幸的维护无人机遵循的实现,并根据它们派生自己的覆盖。如果这个类不是抽象的,那么没有人被迫覆盖任何东西,并且可以根据自己的喜好使用原始方法。
@override
注释始终是可选的,无论是覆盖抽象方法还是具体方法。所有注释都是可选的,因为它们是元数据,仅对人类有用,编译器完全忽略它们,就像注释和空格一样。