昆明java培训
达内昆明广州春城路

18487146383

热门课程

java程序建议:注意@Override不同版本的区别

  • 时间:2016-09-28
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明Java培训机构的老师提醒大家注意@Override不同版本的区别

@Override注解用于方法的覆写上,它是在编译器有效,也就是Java编译器在编译时会根据注解检查方法是否真的是覆写,如果不是就报错,拒绝编译。该注解可以很大程度地解决我们的误写问题,比如子类和父类的方法名少写一个字符,或者是数字0和字母O为区分出来等,这基本是每个程序员都曾将犯过的错误。在代码中加上@Override注解基本上可以杜绝出现此类问题,但是@Override有个版本问题,我们来看如下代码:

1 interface Foo {

2    public void doSomething();

3 }

4

5 class FooImpl implements Foo{

6    @Override

7    public void doSomething() {

8        

9    }

10 }

这是一个简单的@Override示例,接口中定义了一个doSomething方法,实现类FooImpl实现此方法,并且在方法前加上了@Override注解。这段代码在Java1.6版本上编译没问题,虽然doSomething方法只是实现了接口的定义,严格来说并不是覆写,但@Override出现在这里可减少代码中出现的错误。

可如果在Java1.5版本上编译此段代码可能会出现错误:

The method doSomeThing() of type FooImpl must override a superclass method

注意,这是个错误,不能继续编译,原因是Java1.5版本的@Override是严格遵守覆写的定义:子类方法与父类方法必须具有相同的方法名、输出参数、输出参数(允许子类缩小)、访问权限(允许子类扩大),父类必须是一个类,不能是接口,否则不能算是覆写。而这在Java1.6就开放了很多,实现接口的方法也可以加上@Override注解了,可以避免粗心大意导致方法名称与接口不一致的情况发生。

学Java开发就到昆明达内Java培训班!了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:java程序建议:枚举和注解结合
下一篇:Java-简单的在字符串中找数字

达内Java开发学员易帅哥月薪7k入职科蓝软件

达内java程序员掌握技术就掌握铁饭碗

Java面试3大经验,线程间协作原理

iPhone摄像头发展史一步一个脚印

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货