Should @Override apply to implementation of interface/abstract methods?
807580Jul 28 2010 — edited Jul 28 2010To me this is a minor but irritating incompatibility between Java 5 and 6. In 5 the @Override annotation only applied when an actual concrete method was overridden. In 6 it also applies when an interface or abstract method is implemented.
To my mind only the first case is actually overriding. Further the purpose of the @Override, AFAIKS, is to catch errors where you accidentally override a method, or write a method which you expect to override another, but get the signature wrong.
This kind of error isn't going to happen on implementing a method because you will get a real syntax error.
If we were going to use annotations to guarantee implementation it should be @Implements