@override annotation in JDK 1.6

The @Override annotation changed in Java 1.6 version. In Java 1.5, the compiler didn't allow @Override annotation on implemented interface methods, from 1.6 it does.

Java Compiler

You must change java compiler version in properties project -> Java Compiler


@Override works on method implementation since java 1.6.


Resources :

  • Sun's forums - Java Programming - Should @Override apply to implementation of interface/abstract methods?
  • dertompson.com - @Override specification changes in Java 6
  • The Former Weblog of Peter Ahé - @Override snafu

On the same topic :

  • When do you use Java's @Override annotation and why?

You probably need to set the compiler compliance level in eclipse. This can be found in Window->Preferences->Java->Compiler

If the compiler preferences are still set to 1.5 the compiler will barf on the override annotation.

Edit: Also check compiler compliance level on a per project basis if you've set those to anything else than default.


The Java Compiler settings can be at multiple places based on the configuration You choose, One way is to Window->Preferences->Java->Compiler, change that to 1.6 minimum, if it was set to some earlier version. Another way is Right Click on Project-> Properties ->Java Compiler ->JDK Compliance ->Select JDK1.6 minimum, click apply.

After you make the changes, let the project build, it builds and take the changes into affect.

If none of the above options work - Try adding the rt.jar to classpath, it will fix the problem.