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