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