首页 > 其他 > 详细

小谈@override

时间:2014-03-05 18:35:49      阅读:273      评论:0      收藏:0      [点我收藏+]

  @override是jdk1.5增加的注解,主要是用来声明子类的某方法覆盖了父类的某方法。非常简单的注解,但是有个小问题:

  项目最开始使用的是jdk1.6,mvc模式:接口 ----> 实现类。后来项目改成了jdk1.5,结果所有实现类上的有@override注解的方法全部报错,把@override注解删掉就好了。当时感觉比较怪,因为@override是jdk1.5的版本出来的,为什么1.5却不支持?

  

  现在jdk1.5环境下,做如下测试:

  1.提供一个接口和抽象类:

bubuko.com,布布扣
/*接口*/
interface MyInter{
    
    public void say();
    
}

/*抽象类*/
abstract class MyAbstract{
    
    public abstract void read();
    
}
bubuko.com,布布扣

 

  2.继承抽象类,实现接口:

  bubuko.com,布布扣

  问题出来了:覆盖接口的方法,编译不通过;而另外两个却通过了。

  

  3.将环境换成jdk1.6,发现编译全部通过。

  

  查阅了相关资料,发现:jdk1.5中并不支持接口方法的@override的覆盖。可能是觉得实现了接口,必定要实现方法,否则编译器一样会报错,这样的话,@override就显得多余了。但在jdk1.6中,扩展了,在接口的实现方法上加@override是合法的了。

小谈@override,布布扣,bubuko.com

小谈@override

原文:http://www.cnblogs.com/myCodingSky/p/3581896.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!