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

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

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

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

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

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

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

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

Конкретный наследник обязан реализовать абстрактные члены, иначе сам остаётся абстрактным. Обычный класс можно создавать, если доступен подходящий конструктор и нет других ограничений; он тоже может иметь virtual-методы.

У абстрактного класса бывают конструктор, поля и реализованные методы. Он не равен интерфейсу: общий базовый класс часто разделяет состояние и реализацию, тогда как интерфейс прежде всего задаёт контракт возможностей.

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

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

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

Подробнее