Интерфейс.
Интерфейс определяет контракт, набор методов без их реализации. Он описывает поведение, которое могут иметь классы, его реализующие.
Абстрактный класс может содержать как абстрактные, так и реализованные методы, а также поля. Он предназначен для использования в качестве базового класса, предоставляющего общую функциональность.
Класс содержит полную реализацию методов и может иметь поля, представляя конкретный тип объекта с состоянием.
Таким образом, интерфейс находится на самом высоком уровне абстракции, определяя только контракт, без деталей реализации.