Абстрактный класс — это родительский (базовый) класс, который не может быть использован для создания объектов — примерно такое описание можно найти в различных справочниках. Абстрактный класс похож на интерфейс, но, несмотря на схожие свойства, у них разные области применения.

Под «интерфейсом» в языках программирования обычно понимают обязательство класса по реализации функционала (набора методов), который описан в интерфейсе.