The only practical approach that I believe is that the Abstract class can contain state. Thus, you can have internal properties with the protected access level, and you can make protected abstract methods that in the interface you cannot call all public .
A practical example might be, for example, this, a protected method in java has “inheritance access” and “package access”.
public interface Operation{ void operate(); } public abstract class AbstractClase implements Operation{ protected Operation delegate; public AbstractClase(Operation delegate){ this.delegate=delegate; }
The disadvantage of using an abstract class is that you lose the ability to extend something else.
source share