API中的说明是:
表示一个方法声明打算重写超类中的另一个方法声明。如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。不明白。没有重写超类方法是什么意思,只有声明没有实现?我在Eclipse 3.2版本中使用了该注释,且重写superclass的方法(有实现),但还是编译出错。据说Eclipse Europa版本可以编译通过,但是我想知道这个东西究竟是干什么的?
谢谢!

解决方案 »

  1.   

    比如说:
    你超类有个void werqwc2411()方法
    子类有个void werqwc24l1()方法
    你本来的意图是为了重写超类的方法,可是由于输入错误,导致没有重写...这个错误很难查.
    当然你用eclipse左边会有小三角提示你.要是没有eclipse呢?
    @override这个标记是你告诉编译器,werqwc24l1()是个重写方法.
    编译器就查找超类.没有发现匹配的就会给你报错
      

  2.   

    首先注意你的jdk版本要在jdk50以后~
      

  3.   

    to zephyr_cc:
    谢谢你的答复。你的意思是,如果一个方法是@override的,但是superclass或者interface中并没有这个方法,就会出错?那为什么下面这段代码也无法通过编译?
    class T implements ActionListener
    {
        @Override
        public void actionPerformed( ActionEvent e )
        {
            
        }
    }JDK版本是6.0
      

  4.   

    你的编译器什么版本,是Sun的标准编译器吗?我在这边试了一下,发现如果是override superclass的方法,没有问题,如果是implements,那么就会有编译错误。如果使用Europa版本的Eclipse 3.3版本,那么implements的也能编译通过,看来应该是编译器的实现不同吧。
      

  5.   

    的确eclipse有这样的问题.不过我在cmd下用javac就没问题呵呵~