Android中的@Override注释

我是Java和Android编程的新手。我遇到的问题是,在浏览了几本书,论坛和网站之后,我对@override注释的作用并不清楚。据我所知,这意味着什么时候一个方法被覆盖。但为什么在android中需要它。我在java的源代码中很少看到它,但在android中一直都是这样。

10

8 答案

你可能很少在旧的 Java源代码中看到它,因为它是一个相当新的创新 - 而Android代码更接近于定义。

这是一个安全网,真的 - 它告诉编译器你尝试覆盖某些东西 - 所以如果方法覆盖任何东西,请失败,例如由于名字中的拼写错误。它就像 override 是一个关键字,它是C#中方法声明的一部分。它可以帮助您明确自己正在做的事情,这有助于防止错误,并使您的代码更清晰地适应未来的读者。

21
额外
谢谢。我从这里的每个答案中拿走了一些东西。我和新人堆叠,所以如果我不感谢每个答案,请不要被冒犯。我直接去了java信息,查找了抽象类和多态性。为了重复我的理解,在调用onCreate()时,它只有基本组件来创建操作系统使用的基本活动。当@overide进场时,你基本上会超越onCreate(),让它在你的程序中完成你的意图。我想我做得比以前更难,但至少我做到了!
额外 作者 JBlaza,

好吧,如果您了解@Override注释的基本知识,那么它只是元数据信息,它有两个目的:

  • 描述它被覆盖的方法,因为它是在接口或扩展类中定义的

  • 帮助您正确识别本地声明的方法和覆盖哪些方法,因为在Android中您可能会从Fragment,Activity,Services,BroadcastReceiver等扩展,这是一个很好的做法,可以使您的代码更清晰。

至于你没有看到它的Java风格的问题,它不仅是因为它是一个相当新的功能(不是自2005年以来的新功能),而是因为你没有在java中覆盖那么多的方法,至少在Swing中没有或者SWT,最常见的是你会在TableModel中找到它们,或者在扩展的HttpServlet类中它是Servlet

7
额外

because you override a lot of methods , example ;when you create your Activity ( which extends Activity ) you need to override the method onCreate( Bundle savedInstanceState) to initialize your Activity , and so on , every time you override a method from a mother Class , eclipse add the annotation @override

2
额外

@Override means that you want to re-define function from superclass in child class. Read more about abstract methods, classes, polymorphism.

2
额外

我对Android编程几乎一无所知,但是@ Override-annotation用于表明该方法覆盖了一个supeclass方法(或者在Java 1.6中实现了一个接口方法)。除了注释的纯文档含义之外,至少Eclipse还会警告您(或者根据您的设置将其标记为错误),如果该方法实际上没有覆盖任何超类方法,那么当您认为它时(因此可以防止一些令人沮丧的错误) -狩猎)。也许Android编译器默认情况下需要使用@Override注释所有重写方法。

1
额外

@override means you are borrowing methods from available class and are not defined by the programmer.

1
额外
看看接受的答案
额外 作者 raam86,

java和android都不需要它。 你经常在android程序中看到它,因为当你创建一个新的活动,方法等时,eclipse会自动添加它。 如果删除@Override注释,则无法进行任何操作。

0
额外

@overide类似于c ++中的虚方法,android中的Oncreate方法更像是wxWidget中的虚拟bool Oninit(),这个方法被android(Oncreate)用来构建你的GUI,因为GUI不同于编程的人Oncreate中的代码也发生了变化,这就是为什么我们必须@overide它。 我们@overide库使用的任何方法,我们想要自定义。像Oninit()这样的Oncreat()也是我们想要自定义的方法。

0
额外
android Discuss | 辣鸡谷歌毁我信仰
android Discuss | 辣鸡谷歌毁我信仰
1 575 参与者

日常闲聊水 和其他任意讨论聊天瞎扯 只要不是 Sticker Spam 什么都好 少喷政治 @daigua 个人频道 | 因阙丝汀 @DuangCN 瓜体中文 | 语言包 @Nekogram 一只需要关怀的第三方客户端 @AndroidMemory 语录 | 嘿嘿嘿 combot.org/chat/-1001054976571 水表