首页 新闻 会员 周边

关于java 注解的问题之Override-

0
悬赏园豆:40 [已关闭问题] 关闭于 2012-09-14 14:02

一下是java给出的源代码:

/* * @(#)Override.java 1.6 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */
package java.lang;
import java.lang.annotation.*;
/** * 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. * * @author  Joshua Bloch * @since 1.5 */@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}

以上实际只有一句是有用的即:

@Target(ElementType.METHOD)

@Retention(RetentionPolicy.SOURCE)

public @interface Override {}

但从此源代码来看,似乎什么都没实现,那么从哪里看出此注解是声明覆盖父类的方法呢?还望各位不吝赐教,谢谢!

易之名的主页 易之名 | 初学一级 | 园豆:103
提问于:2011-06-27 23:49
< >
分享
所有回答(2)
0

应该是由编译器实现的,比如eclipse的编译器

六芒星 | 园豆:627 (小虾三级) | 2011-06-28 10:53
这是不可能的。
支持(0) 反对(0) 易之名 | 园豆:103 (初学一级) | 2011-06-28 16:16
0

这里定义是个空的annotation类型,那么@Override就起到一个简单的标记作用,不附加其它信息,由@Retention(RetentionPolicy.SOURCE) 可以看出这个注解只保留在源码中,那么在JDK编译时,编译器检测到这个@Override后,会去检查这个Method是否重写了父类的方法,

宁 静 致 远 | 园豆:205 (菜鸟二级) | 2011-07-20 23:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册