JAVA.Override的作用.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA.Override的作用

如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override? 系统可以帮你检查方法的正确性, @Override public String toString(){...}这是正确的? ?????? 一旦写错 写成这样 @Override public String tostring(){...} ?????? 编译器可以检测出这种写法是错误的 这样能保证你的确重写的方法正确 ?????? 而如果不加@Override public String tostring(){...}这样编译器是不会报错的? 它只会认为这是你自己新加的一个方法而已 ------------------------------------------------------------ @Override的用法: Override: java.lang.Override是一个marker annotation类型,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。如果我们使用了这种annotation在一个没有覆盖父类方法的方法时,java编译器将以一个编译错误来警示。 这个annotaton常常在我们试图覆盖父类方法而确又写错了方法名时发挥威力。 使用方法极其简单:在使用此annotation时只要在被修饰的方法前面加上@Override。 下面的代码是一个使用@Override修饰一个企图重载父类的toString方法,而又存在拼写错误的sample: 清单1: @Override public String toSting() {?? // 注意方法名拼写错了??? return [ + super.toString() + ];} ? ------------------------------------------------------- Java6的@override注解与Java5不同之处: 首先看一下下面的示例代码 :   Parent.java public class Parent...{   public void parentMethod() ...{   } }   IChild.java public interface IChild ...{   void interfaceMethod(); }   Child.java public class Child extends Parent implements IChild ...{   @Override   public void parentMethod() ...{   }   @Override   public void interfaceMethod() ...{   } }   由于代码很简单,我就不做说明   上述代码在jdk6下可以编译通过   而在jdk5下编译无法通过,输出的错误信息如下:   Child.java:7: 方法未覆盖其父类的方法   @Override   ^   1 错误   上面的错误信息说在Child.java第七行的Override注解是不对的,不对的原因是该方法(interfaceMethod)不是父类方法。   当然,实际上这个方法是类实现的接口中方法,但是,这个语法的jdk6的下面是可以通过的,也就是说java6认为类覆盖父类方法与实现接口方法都叫override,而jdk5不是这样认为的,不知道这是当初jdk5的bug,还是当初就是认为覆盖父类方法与实现接口方法是不一样的,不得而知。但是从OO角度来看,覆盖父类方法与实现接口方法都可以认为override,因为他们目的都是一样的,都是为了重用,都是多态的一种表现方式。这从jdk6的支持这个功能就可以看出。   差一点忘了:   标准的java api文档java5与java6对Override annotation的的解释一样的   java5:   Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.   java6:   Indicates that a method declaration is intended to override a method de

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档