Чтобы воспользоваться преимуществами проверки компилятором, вы всегда должны использовать аннотацию Override. Но не забывайте, что Java Compiler 1.5 не позволит эту аннотацию при переопределении методов интерфейса. Вы просто можете использовать его для переопределения методов класса (абстрактных или нет).
Некоторые IDE, такие как Eclipse, даже настроенные на время выполнения Java 1.6 или выше, поддерживают совместимость с Java 1.5 и не позволяют использовать @override, как описано выше. Чтобы избежать такого поведения, вы должны перейти к: Свойства проекта -> Компилятор Java -> Отметьте «Включить параметры проекта» -> Выберите «Уровень соответствия компилятора» = 6.0 или выше.
Мне нравится использовать эту аннотацию каждый раз, когда я независимо переопределяю метод, если база является интерфейсом или классом.
Это поможет вам избежать некоторых типичных ошибок, например, когда вы думаете, что переопределяете обработчик событий, и тогда вы ничего не видите. Представьте, что вы хотите добавить прослушиватель событий в некоторый компонент пользовательского интерфейса:
someUIComponent.addMouseListener(new MouseAdapter(){
public void mouseEntered() {
...do something...
}
});
Вышеприведенный код компилируется и запускается, но если вы переместите мышь внутри someUIComponent, код «сделать что-то» запустится, потому что на самом деле вы не переопределяете базовый метод mouseEntered(MouseEvent ev)
. Вы просто создаете новый метод без параметров mouseEntered()
. Вместо этого кода, если вы использовали @Override
аннотацию, вы увидели ошибку компиляции, и вы не тратили время на размышления о том, почему не работает ваш обработчик событий.