Junior
90
questionbank
В чем заключается отличие между абстрактными классами и интерфейсами?
Ответ от нейросети
sobes.tech AI
Абстрактный класс:
- Может содержать абстрактные (без реализации) и конкретные (с реализацией) методы.
- Может содержать поля (переменные экземпляра).
- Может иметь конструкторы.
- Допускает одиночное наследование (один класс может наследовать от одного абстрактного класса).
- Используется для определения базовой структуры и общего поведения для связанных классов.
Интерфейс:
- Может содержать только абстрактные методы (некоторые языки, например Java с версии 8, допускают default и static методы с реализацией).
- Не может содержать поля экземпляра (только константы).
- Не может иметь конструкторы.
- Допускает множественную реализацию (один класс может реализовать несколько интерфейсов).
- Используется для определения контракта, который обязуются реализовать классы.