both interface and abstract class are the important concept in Java, they serve for different purposes.
The combination of them provide flexible solution for different use case.
Interface
provide us the minimum contract without any implement detail. Please note, interface can have the default method as well. And interface allow the subclass to have multiple inheritance of type.
Abstract Class
, on the other hand, will provide the common implementation, and subclass can override the method.
Use Case 1.
Interface setup the basic method for all the subsequent classes, abstract class provide the inheritence hirachey for generic data type.