Полиморфизм Java

143
29 июня 2019, 21:50

Когда я переопределяю метод из базового класса с помощью @Override - это статическое связывание, а когда без - динамическое. Правильно ли я понимаю?

Answer 1

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

Answer 2

Аннотацию @Override следует обязательно указывать.

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

На пример у вас есть метод: (требует переопределения)

setLocalePositionOfCircle();

А вы написали: (без @Override)

setLocalePositionofCircle() {} // вместо of -> Of

То в итоге получится два метода:

setLocalePositionOfCircle(); // который нужно было переопределить
setLocalePositionofCircle() {} // который не был переопределен, из за допущенной ошибки
READ ALSO
как сплитить list по ключевому символу

как сплитить list по ключевому символу

У меня есть файл, в котором лежит строка, где каждое значение разделено пробелом, мне надо разделить каждое значение через пробелВ файле строка...

117
JS чтение файла

JS чтение файла

У меня есть небольшое web-приложение с использованием JSОна лежит локально и должно точно так же использоваться локально

116
Drap and Drop До и после при перемещении стрелки

Drap and Drop До и после при перемещении стрелки

помогите осуществить такой механизмНашел вот такой пример jsfiddle

105
Cannot read property 'find' of undefined, dexie async await

Cannot read property 'find' of undefined, dexie async await

Проблема возникает из-за того, что получение данных из бд происходит медленно, без async\await получается, что чтение из бд слишком медленное

122