Indicates that a method declaration is intended to override a method declaration in a supertype. If a method is annotated with this annotation type compilers are required to generate an error message unless at least one of the following conditions hold:
The method does override or implement a method declared in a supertype.
The method has a signature that is override-equivalent to that of any public method declared in Object.
See The Java™ Language Specification :
8.4.8 Inheritance, Overriding, and Hiding, 9.4.1 Inheritance and Overriding, 126.96.36.199 @Override