首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的"@Override“

Java中的"@Override“
EN

Stack Overflow用户
提问于 2014-12-12 13:52:09
回答 5查看 121关注 0票数 0

我正在学习Java来构建一个android应用程序。我发现在很多继承类的地方,被覆盖的方法被标记为"@Override“。

例如:

代码语言:javascript
复制
@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

有人能解释一下,编译器是如何解释这个标记"@Override“的吗?它是保留字还是注释。或者仅仅是做任何特殊事情的"@“,就像我们有"//”来注释掉一样。

EN

回答 5

Stack Overflow用户

发布于 2014-12-12 13:55:38

如果被注释的方法不是来自超类型(父类或接口),则注释@Override将导致错误

JLS-9.6.3.4 @Override说(部分地),

如果方法声明带有注释@ override,但该方法不重写或实现在超类型中声明的方法,或者不重写-等同于Object的公共方法,则会发生编译时错误。

票数 1
EN

Stack Overflow用户

发布于 2014-12-12 13:57:37

@Override是一个注解。

使用它,这样您就可以利用编译器检查来确保您实际上覆盖了父类中的方法。这样,即使您犯了方法名称拼写错误或参数不正确匹配等错误,编译器也会发出警告。

票数 1
EN

Stack Overflow用户

发布于 2014-12-12 13:57:40

当为overriding a method时,您可能希望使用@Override批注,该批注指示编译器您打算重写superclass中的方法。如果由于某种原因,编译器检测到该方法不存在于某个superclasses中,那么它将生成一个错误。

有关更好的理解,请参阅this

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27437663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档