首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

增高你的Java代码质量吧:注意@ Override不同版本的区别

2013-09-17 
提高你的Java代码质量吧:注意@ Override不同版本的区别一、分析 @Override注解用于方法的覆写上,它在编译期

提高你的Java代码质量吧:注意@ Override不同版本的区别

一、分析 

@Override注解用于方法的覆写上,它在编译期有效,也就是Java编译器在编译时会根据该注解检查是否真的是覆写,如果不是就报错,拒绝编译。 

该注解很大程度解决我们的误写问题,比如子类和父类的方法名少写一个字符,或者是数字0和字母O未区分出来等,这基本上是每个程序员都曾犯过的错误。在代码中加上@Override注解基本上可以杜绝出现此类问题。 

 

二、场景 

但是@Override有个版本问题,我们来看看如下代码: 

这段代码在Java1.6版本上编译没有任何问题,虽然doSomething方法只是实现了接口定义,严格来说并不能算是覆写,但@Override出现在这里可以减少代码中可能出现的错误。 

 

可是在Java1.5版本上编译此段代码,就会出现如下错误: 

the method doSomething() of type impl must override a superclass method Client.java 

注意,这个错误,不能继续编译。原因是1.5版本中@Override是严格遵守覆写的定义:子类方法与父类方法必须具有相同的方法名、输入参数、输出参数(允许子类缩小)、访问权限(允许子类扩大)、父类必须是一个类、不能是一个接口、否则不能算是覆写。 


而在Java1.6就开放很多,实现接口的方法也可以加上@Override注解了,可以避免粗心大意导致方法名称与接口不一致的情况发生。 

 

三、建议 

在多环境部署应用时,需要考虑@Override在不同版本下代表的意义,如果是Java1.6版本的程序移植到1.5版本环境中,就需要删除实现接口方法上的@Override注解。

2楼oh_Maxy5分钟前
在高版本jdk里编译的成,是强烈不推荐在低版本上运行的。
1楼mazhaojuan昨天 15:01
提高代码质量,关注细节!
Re: p106786860昨天 16:31
回复mazhaojuann嗯额,赞同,代码质量在项目管理里面非常重要了。。

热点排行