Basic Difference Between Interface and Abstract Class
For Interface, class must be declared as Interface.
In the interface, all methods by default all are abstract methods.
All methods are public in interface.
Interfaces cannot contain variables and concrete methods except constants.
A class can implement many interfaces
Multiple interface inheritance is possible.
For abstract class, a method must be declared as abstract. In class, at-least one method must be declared as abstract.
The Abstract methods can declare with Access modifiers like public, private, protected.
When implementing in subclass these methods must be defined with the same visibility (Like public, protected).
Abstract class can contain variables, concrete methods and constants.
A class can Inherit only one Abstract class
Multiple inheritance is not possible for Abstract class.