zhangsenwei

张森炜的博客

联系 管理
  19 Posts :: 8 Stories :: 55 Comments :: 0 Trackbacks

我们先来看一下,下面这段代码:

public class B extends A {
    @Override                    
    
public void test1() {
        
// TODO Auto-generated method stub
        super.test1();
    }

}

上面这段代码很简单,创建一个类,类的名字为B 同时让这个B类继承与A类,在A类中有一个方法叫 test1 ,现在我们想在B类中覆盖A类的test1方法,我们会看到代码中会出现 @Override 一句注释,它是用来干什么的呢?有很多学习Java的朋友,都会将他删除掉,那么我们就一起来看看它的作用吧。
首先我们来创建一个类,类的名字叫做 A 具体源代码如下:
package com.zsw.test;

public class A {
    
public void test1() {
      System.out.println(
"This is test1 moeth in A");
    }

}


我们再来创建一个类,类的名字叫做 B 并且让B类继承于 A 类,我们想在B类中重写A类中的test1方法,但是这时我们不小心将方法名写成 testl(这里不是test1 而是字母中的 L ),源代码如下:
package com.zsw.test;

public class B extends A {

    
public void testl() {
        System.out.println(
"This is test1 method in B");
    }

}


我们发现我们的方法名称写错了程序并没有报错,但是我们想要覆盖的 test1 方法功能并没有实现而是为B类中有添加一个新的方法 testl(这里是L)
最后我们在写测试类 Test的时候执行结果怎么都不对。
package com.zsw.test;

public class Test {

    
public static void main(String[] args) {
        A a 
= new B();
        a.test1();

    }


}

总是打印的是 A类中的 test1 方法。这种情况在初学这种经常出现,那么怎么能够避免这种问题呢,这就要用到我们上面的那句注释了。现在我们在B类的方法前加上注释  我们再来看看,发现B类的代码报错了

因为这句注释的意思是说这里覆盖的是A 类中的test1方法而现在所写的方法没有进行覆盖。这样我们就很容易避免上面所出现的错误了。
当然在JDK5.0中还有很多其他的一些注释比如:
@Deprecated    方法已过期,不再推荐使用。在一个方法上面写类这句注释就会出现下面的情况:


关于更多的一些注释,可以参考一下JDK5.0帮助。
posted on 2008-07-04 11:05 张森炜 阅读(964) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: