Java 如何使@Override成为子类的必选项?

Java 如何使@Override成为子类的必选项?,java,oop,Java,Oop,举个例子:在Android中,通常当你试图重写Activity超类的方法时,你必须有@override注释,这是必须的。他们是怎么做到的 我想在subclss覆盖方法中严格使用@Override。我需要在父类中做什么更改来强制执行此操作 我想强制执行注释(而不仅仅是重写基本方法)。您不需要@override注释,我已经制作了“需要它们”的插件,但没有@override注释。如果您想强制重写,这意味着方法的父实现肯定会被隐藏。因此,在任何情况下都不会调用它,除非来自被重写的方法本身 这意味着您可以

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

我想在subclss覆盖方法中严格使用@Override。我需要在父类中做什么更改来强制执行此操作


我想强制执行注释(而不仅仅是重写基本方法)。

您不需要@override注释,我已经制作了“需要它们”的插件,但没有@override注释。

如果您想强制重写,这意味着方法的父实现肯定会被隐藏。因此,在任何情况下都不会调用它,除非来自被重写的方法本身

这意味着您可以只声明方法
abstract
(与
类一起声明):


没有办法强迫任何人放弃。如果将类或方法
抽象化
,则是强制重写。但是,您没有提供您希望您的子类和/或不幸的维护无人机遵循的实现,并基于它们派生自己的覆盖。如果类不是抽象的,那么没有人会被迫重写任何内容,并且可以随心所欲地使用原始方法


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

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

您不理解这个问题。重写不是强制性的,的确如此,但我想强制严格使用重写。我不认为你可以用代码来做这件事-你的IDE中可能有一些东西(例如,如果注释丢失,Netbeans会显示警告)或者你可以使用样式分析工具,比如checkstyle或findbugs,它们可能有一个规则来检查注释。我想你是在问如何强制注释,但答案认为你是在试图强迫人们覆盖基本方法。因此,这个问题显然不清楚。请澄清。这在Android中不是强制性的。唯一可能发生的事情是Android Studio会抱怨你没有做注释。我认为你不理解这个问题。我认为你对你的问题解释得不够好。如果问题是“我如何在子类上强制@Override注释”,那么对我来说这似乎只是一个XY问题。你为什么要这么做?听起来完全可行。我接受+1。谢谢你抽出时间。
abstract class Foo {
  public abstract void overrideMe();
}