Интерфейс или абстрактный класс?
Invoice и Shipping должны только гарантировать getPrice(): float, но не имеют общего состояния или готового кода. Что выбрать?
Что проверяет это задание
Интерфейс подходит для общего контракта без реализации. Абстрактный класс нужен, когда требуется разделить состояние или готовое поведение.