我正在学习Java来构建一个android应用程序。我发现在很多继承类的地方,被覆盖的方法被标记为"@Override“。
例如:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}有人能解释一下,编译器是如何解释这个标记"@Override“的吗?它是保留字还是注释。或者仅仅是做任何特殊事情的"@“,就像我们有"//”来注释掉一样。
发布于 2014-12-12 13:55:38
如果被注释的方法不是来自超类型(父类或接口),则注释@Override将导致错误
JLS-9.6.3.4 @Override说(部分地),
如果方法声明带有注释@ override,但该方法不重写或实现在超类型中声明的方法,或者不重写-等同于Object的公共方法,则会发生编译时错误。
发布于 2014-12-12 13:57:37
@Override是一个注解。
使用它,这样您就可以利用编译器检查来确保您实际上覆盖了父类中的方法。这样,即使您犯了方法名称拼写错误或参数不正确匹配等错误,编译器也会发出警告。
发布于 2014-12-12 13:57:40
当为overriding a method时,您可能希望使用@Override批注,该批注指示编译器您打算重写superclass中的方法。如果由于某种原因,编译器检测到该方法不存在于某个superclasses中,那么它将生成一个错误。
有关更好的理解,请参阅this。
https://stackoverflow.com/questions/27437663
复制相似问题