Что значит @Override?

public class NaiveAlien extends Alien
{

    @Override
    public void harvest(){}

}

Я пытался понять код моего друга, и я не понимаю синтаксис @Override в коде. Что это делает и зачем нам нужно кодирование? Благодарю.

3 ответа

Решение

Это подсказка для компилятора, чтобы он знал, что вы переопределяете метод родительского класса (или интерфейса в Java 6).

Если компилятор обнаружит, что нет функции переопределения, он предупредит вас (или об ошибке).

Это чрезвычайно полезно для быстрой идентификации опечаток или изменений API. Скажем, вы пытаетесь переопределить метод вашего родительского класса harvest() но по буквам harvset(), ваша программа будет беззвучно вызывать базовый класс, и без @OverrideВы не будете предупреждены об этом.

Аналогично, если вы используете библиотеку, и во второй версии библиотеки, harvest() был изменен, чтобы принимать целочисленный параметр, вы больше не будете его переопределять. Снова, @Override быстро скажу вам.

Эта функция называется аннотацией. @Override это синтаксис использования аннотации, чтобы сообщить компилятору: "эй, компилятор, я изменяю то, что собирает урожай в родительском классе", тогда компилятор может сразу сказать: "чувак, ты неправильно назвал его". Компилятор не будет компилироваться, пока вы не укажете его правильно.

Итак, без этого @Override аннотации, компилятор не выдаст ошибку, и он будет считаться объявлением нового метода. Было бы трудно распознать ошибку в этой точке.

@Override означает, что вы переопределяете метод базового класса. В java6 это также означает, что вы реализуете метод из интерфейса. Он защищает вас от опечаток, когда вы думаете, что переопределяете метод, но вы что-то опечатали.

Другие вопросы по тегам