让我晕死了N次的JDK5- @Override。。

本文探讨了JDK5与JDK6中@Override注解的不同之处。在JDK5中,该注解仅用于覆盖父类方法;而在JDK6中,则涵盖了覆盖父类方法和实现接口方法两种情况。这导致了使用JDK6编写的代码在切换到JDK5环境时出现错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


多次在将Eclipse编译环境从JDK6换到JDK5的时候,在JDK6下面写的@Override 几乎都要报错。百思不得其解。
网上找了找,终于发现原因了:)
 
@Override 是JDK5引入的,描述如下:
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.
 

在JDK6文档中的描述是一模一样!但是真正的麻烦就出在superclass 的理解上!JDK5认为Override重载是覆盖父类方法,而JDK6则将覆盖父类方法与实现接口方法,都定义为Override superclass。 因此只要是实现接口方法的地方写了@Override,JDK5都会报错

 

个人感觉JDK5的@Override可能是设计时候的bug吧:) 因为感觉JDK6的理解比较正确。

 


  
  
  
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值