Java 关于活动回调中的@override注释

Java 关于活动回调中的@override注释,java,android,android-layout,android-intent,annotations,Java,Android,Android Layout,Android Intent,Annotations,在一个活动中,例如onCreate()方法中,如果我有@Override注释与否,似乎没有多大区别。他们都工作。(只要我在回调中调用super.onCreate(),它就会调用父类的方法。) 有人能告诉我为什么我们需要在活动中为生命周期回调添加@Override注释吗 我问这个问题是因为我测试时没有使用@Override注释,我的应用程序仍然成功运行。这更像是一种良好的开发实践 如果错误地想要重写超类(或实现的接口)中不存在的方法,您将得到一个错误 认为您想要覆盖“onCreate”,但您拼错了

在一个活动中,例如
onCreate()
方法中,如果我有
@Override
注释与否,似乎没有多大区别。他们都工作。(只要我在回调中调用
super.onCreate()
,它就会调用父类的方法。)

有人能告诉我为什么我们需要在活动中为生命周期回调添加
@Override
注释吗


我问这个问题是因为我测试时没有使用
@Override
注释,我的应用程序仍然成功运行。

这更像是一种良好的开发实践

如果错误地想要重写超类(或实现的接口)中不存在的方法,您将得到一个错误


认为您想要覆盖“onCreate”,但您拼错了它并编写了“onCreate”。使用该注释,您将得到一个错误。如果没有它,您将花费大量时间试图理解初始化方法为何不能正常工作。

使用@Override注释只是告诉编译器我们正在重写代码中的方法。这是出于安全目的,让编译器知道我们函数的目的(即重写),如果我们碰巧重载了一个函数,编译器将返回一个错误。因此,使用此注释,我们可以轻松地检测重载错误。

一些人已经提到,捕获拼写错误的名称的潜在错误非常有用

我想补充一点 还显示哪些方法是特定于类的新方法,哪些方法是从父类(或接口)继承的。听起来可能不多,但我个人觉得它非常有用

因此,您应该始终使用@Override,并将IDE配置为在忘记错误时标记错误