В каких случаях нужно использовать абстрактный класс, а в каких интерфейс?

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

Параметр типа абстрактный класс: здесь может находиться только объект класса, являющегося потомком этого абстрактного класса.

Интерфейс — кода указанный набор методов может быть реализован самыми разными классами, никак не связанными отношениями предок-потомок.

Параметр типа интерфейс: здесь может находиться объект любого класса, реализующего этот интерфейс.

По факту, интерфейсы нередко используют как более простую и надёжную альтернативу множественному наследованию из C++.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *