В Java наивысший уровень абстракции имеет интерфейс.
Интерфейс содержит только определение методов без их реализации, и классы могут реализовать эти методы, реализуя интерфейс.
Абстрактный класс также может содержать абстрактные методы и может использоваться для предоставления общей функциональности для классов-наследников, но классы могут наследоваться только от одного абстрактного класса.
Простой класс не является настолько абстрактным, как абстрактный класс или интерфейс, так как он имеет уже реализованные методы и может использоваться для создания объектов.
Github: https://github.com/DEBAGanov