Это довольно полезно. Если метод, аннотированный @Override
, на самом деле не переопределяет метод в суперклассе, вы получите ошибку компиляции.
Например, если у вас есть класс Foo
и вы создаете метод:
@Override
public boolean equals (Foo foo) { ... }
тогда вы получите ошибку во время компиляции, которая скажет вам, что equals (Foo foo)
не переопределяет ни один метод в суперклассе Foo.
Современные IDE (например, IntelliJ) добавляют эту аннотацию автоматически при использовании некоторых функций генерации кода в IDE.