Задать вопрос
@WannaCreative

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

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

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


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


Из этого я вообще ничего не понял, зачем и где именно его писать. Чужой код разбирал, удалил @Override в чужом коде, без него тоже все работает, но все таки это нужно для чего то
  • Вопрос задан
  • 11384 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 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 проверяли его сигнатуру (параметры, модификаторы доступа, возвращаемое значение) и не давали скомпилировать при наличии ошибки, ведь если сигнатура неверная, то метод не будет вызываться.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Сбер Москва
от 300 000 до 350 000 ₽
DIGITAL SECTOR Краснодар
от 250 000 до 450 000 ₽
Сбер Санкт-Петербург
До 350 000 ₽