Android中的@Override注释

JBl*_*aza 10 java android

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

Jon*_*eet 21

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

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


Nec*_*net 7

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

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

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

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