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

[source,java]
----
class ParentClass {
  public boolean doSomething(){...}
}
class FirstChildClass extends ParentClass {
  public boolean doSomething(){...}  // Noncompliant
}
----


== Compliant Solution

[source,java]
----
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()++``, ...


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::message.adoc[]

'''
== Comments And Links
(visible only on this page)

include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]
