Using the @Override
annotation is useful for two reasons :
- It elicits a warning from the compiler if the annotated method doesn’t actually override anything, as in the case of a misspelling.
- It improves the readability of the source code by making it obvious that methods are overridden.
Noncompliant Code Example
class ParentClass {
public boolean doSomething(){...}
}
class FirstChildClass extends ParentClass {
public boolean doSomething(){...} // Noncompliant
}
Compliant Solution
class ParentClass {
public boolean doSomething(){...}
}
class FirstChildClass extends ParentClass {
@Override
public boolean doSomething(){...} // Compliant
}
Exceptions
This rule is relaxed when overriding a method from the Object
class like toString()
, hashCode()
, …