Чем отличается абстрактный класс от интерфейса?
Ниже представлены основные отличия:
— Абстрактный класс может содержать как абстрактные, так и неабстрактные методы. Интерфейс содержит только сигнатуры методов, которые по умолчанию абстрактные.
— Абстрактный класс может содержать поля и реализованный код. В интерфейсе может быть только объявление констант.
— Класс может расширять только один класс (абстрактный или нет) и реализовывать множество интерфейсов.
— Объект абстрактного класса не может быть создан, тогда как интерфейс не является классом и его экземпляры создавать нельзя в принципе.
— Абстрактные классы используются для общих частично реализованных решений, интерфейсы — для определения зависимостей.
Post #170
2.09K
- 👍 5
- ❤ 4