ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java注解:@Override的作用

2021-02-24 23:33:30  阅读:214  来源: 互联网

标签:onCreate Java 方法 编译器 Override 注解 oncreate 重写


Java
SE5新增加@Override注解,它并不是关键字,但是可以把它当作关键字使用。当你想要覆写(重写)某个方法时,可以选择添加这个注解,在你不留心重载而并非覆写了该方法时,编译器就会生成一条错误信息。

重载: 重载的时候,方法名要一样,但是参数类型或个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

覆写(重写): 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。


@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。

举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。

<span style="color:#000000"><code class="language-java"><span style="color:#999999">@Override</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">onCreate</span><span style="color:#999999">(</span>Bundle savedInstanceState<span style="color:#999999">)</span>

<span style="color:#999999">{</span>……<span style="color:#999999">.</span><span style="color:#999999">}</span>
这种写法是正确的,如果你写成:

<span style="color:#999999">@Override</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">oncreate</span><span style="color:#999999">(</span>Bundle savedInstanceState<span style="color:#999999">)</span>
<span style="color:#999999">{</span>……<span style="color:#999999">.</span><span style="color:#999999">}</span>
编译器会报如下错误:The method <span style="color:#61aeee">oncreate</span><span style="color:#999999">(</span>Bundle<span style="color:#999999">)</span> of type HelloWorld must override or 
implement a supertype method,以确保你正确重写onCreate方法(因为oncreate应该为onCreate)
而如果你不加<span style="color:#999999">@Override</span>,则编译器将不会检测出错误,而是会认为你为子类定义了一个新方法:oncreate
</code></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

有部分添加。
转载自:Java中@Override的作用 ----- 侵删

来源:https://blog.csdn.net/m0_37482190/article/details/90106175

标签:onCreate,Java,方法,编译器,Override,注解,oncreate,重写
来源: https://blog.csdn.net/gb4215287/article/details/114048715

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有