Цель переопределения - PullRequest
       26

Цель переопределения

7 голосов
/ 11 января 2011

Это очень наивный вопрос, но он звучит так:

Переопределенный метод из базового класса будет означать, что вызовы подкласса вызовут производный переопределенный метод, правильно?

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

Это так?

Это приводит меня к следующему вопросу:

В чем разница между абстрактным классом, из которого могут наследоваться 5-6 классов, но методы, унаследованные в производных классах, не переопределяются, и одним классом (статическим или не относящимся к делу), используемым этими 5-6 классами?

Ответы [ 4 ]

10 голосов
/ 11 января 2011

Аннотация @Override предназначена ТОЛЬКО для обнаружения ошибок во время компиляции.Это не влияет на поведение переопределения во время выполнения.Идея состоит в том, что вы даете компилятору возможность сообщить вам, что имя вашего метода или подпись неверны.

1 голос
/ 11 января 2011

Аннотация переопределения - это просто маркер, показывающий, что метод переопределяет метод суперкласса.

Он не оказывает влияния во время выполнения.Смотрите здесь:

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Override.html

0 голосов
/ 11 января 2011

Таким образом, если нет аннотации переопределения, будет вызван метод в базовом классе.

Нет.Метод переопределения в производном классе всегда будет вызываться.

Таким образом, метод переопределения будет служить исключительно для документирования намерения - вызвать одну версию метода поверх другой.это тот случай?

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

0 голосов
/ 11 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...