Android中的@Override注释

时间:2011-10-27 18:04:16

标签: java android

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

9 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:7)

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

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

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

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

答案 2 :(得分:2)

因为您覆盖了很多方法,例如;当您创建Activity(扩展Activity)时,您需要覆盖方法onCreate( Bundle savedInstanceState)来初始化Activity ,等等,每次从母类重写方法时,eclipse都会添加注释 @override

答案 3 :(得分:2)

@Override表示您想要从子类中的超类重新定义函数。阅读有关抽象方法,类,多态的更多信息。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

Child

答案 8 :(得分:-1)

@override表示您从可用类借用方法,而不是由程序员定义。