MyTetra Share
Делитесь знаниями!
@Override
Время создания: 10.09.2017 12:50
Текстовые метки: knowledge
Раздел: Java - Tutorial - Descriptors (annotations)
Запись: xintrea/mytetra_db_mcold/master/base/15050370246ceyyyrcaj/text.html на raw.githubusercontent.com

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

На этом действие аннотации заканчивается.

Таким образом, аннотация никак не влияет на сам факт переопределения метода - при совпадении сигнатур с методом базового класса он и так будет переопределен, независимо от наличия, либо отсутствия этой аннотации. Аннотация служит лишь для контроляуспешности действия при сборке проекта.

В случае отсутствия данной аннотации и не совпадении сигнатур (в результате ошибки) с методом, который мы собирались переопределять - случится страшное - очень трудноуловимая ошибка, когда вы думаете, что должно бы переопределяться, а по факту имеете отдельный независимый метод, который скорее всего вообще не выполняется. При этом компилятор считает, что с его точки зрения все в порядке - хотите собственный метод в классе-наследнике - нет проблем. И молчит.

 
MyTetra Share v.0.65
Яндекс индекс цитирования