Чем виртуальный метод отличается от абстрактного?

Виртуальный метод имеет базовую реализацию, которую наследник может переопределить. Абстрактный метод не имеет тела и должен быть реализован конкретным наследником.

Короткий ответ

Что ответить на собеседовании

Виртуальный метод имеет базовую реализацию, которую наследник может переопределить. Абстрактный метод не имеет тела и должен быть реализован конкретным наследником.

Подробный разбор

Ответ с пояснениями

Виртуальный метод имеет базовую реализацию, которую наследник может переопределить. Абстрактный метод не имеет тела и должен быть реализован конкретным наследником.

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

Virtual подходит, когда есть разумное поведение по умолчанию; abstract — когда база лишь задаёт обязательную операцию. Для переопределения используют override, а не new, которое скрывает член и имеет другую семантику.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее