@WannaCreative

Зачем и где именно писать @Override?

Из определения из интернета можно прочитать, что значит @Override

На самом деле аннотация @Override указывает, что далее мы собираемся переопределять метод базового класса.


Аннотация служит лишь для контроля успешности действия при сборке проекта.


Из этого я вообще ничего не понял, зачем и где именно его писать. Чужой код разбирал, удалил @Override в чужом коде, без него тоже все работает, но все таки это нужно для чего то
  • Вопрос задан
  • 10646 просмотров
Решения вопроса 2
EugeneP2
@EugeneP2
Java Dev
Это аннотация пишется над методами, которые переопределяются из супер класса.

Это что-то вроде страховки, гарантирующая что 100% переопределен метод.

class A {
public void superMethod() {}
}

class B extends A {
@Override
public void superMethod() {}
}


Компилятор, когда встретит данную аннотацию, проверит, чтоб сигнатуры методов в супер классе и в под классе совпадали, т.е. вы переопределили метод, и в полиморфизме будит вызываться переопределенный метод.

Если вдруг вы ошиблись в сигнатуре метода (например пропустили букву в название), то компилятор выдаст ошибку
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Писать перед теми методами, которые переопределяете. Этим вы сигналите компилятору, что хотите не определить новый метод, а именно переопределить. Компилятор будет проверять наличие помеченных методов в базовом классе и выдавать ошибку, если их нет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
Писать желательно на всех переопределенных методах, во-первых, чтобы человек, читающий код, видел, что это переопределенный метод, во-вторых, чтобы компилятор и IDE проверяли его сигнатуру (параметры, модификаторы доступа, возвращаемое значение) и не давали скомпилировать при наличии ошибки, ведь если сигнатура неверная, то метод не будет вызываться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы