在某些时候java.lang.Override开始可用于接口中声明的方法的实现.我很确定有一段时间它只适用于超类中定义的方法的覆盖.
我怎样才能知道这种变化发生的时间(即哪个版本)?
cle*_*tus 12
@Override在从接口实现但不从超类重写的方法上使用注释是Java 6中的一项新功能.请参阅Java 6中的@Override规范更改:
在Java 5和Java 6之间已经对@Override的规范进行了更改.在Java 6中,可以将@Override注释添加到实现Java 5中不允许的接口方法的方法中.
当一位朋友告诉我他必须删除所有@Override注释以使他的Java 6项目使用Java 5编译时,我注意到了区别.
有趣的是,没有关于此更改的文档.@Override的API规范在两个Java版本中完全相同.我发现Sun开发人员忘记了这一点.Sun的前开发人员PeterAhé将其称为@Override Snafu.