2个回答
展开全部
@Override,标示方法重写的注解,JDK 1.5添加到java.lang包中。该注解作用于方法上,表示该方法是对父类方法的重写。
JDK 1.5推出注解后,Java.lang包中添加了@Override,注解源码很简单:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
由源码可以知道,这个注解是作用在方法级别的,作用域是源码级别,也就是在编译的时候这个注解会被解析,在运行时会被丢弃。
标记了该注解表示注解的方法是重写的父类的,因此编译器会在编译阶段检查方法签名,如果在父类中未发现同样的方法(指的是方法签名),编译器会抛出编译错误。在JDK 1.5之前子类重写父类方法都是人为保证的,有了该注解,可以提供两方面好处:
(1)能保证子类确实重写了父类方法,避免出现因为拼写等原因造成的人为重写失败,比如
子类A重写了方法service,但是由于不小心写成了services,这样编译不会发生错误,运行时调用的是父类的service,错误难以查出。
(2)通过源码就可以知道该方法是被重写过的,方便开发。
在JDK 1.5中,该注解声明的方法必须是重写的父类方法,不能是接口方法。JDK 1.6允许对接口的实现方法添加这个注解。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询