Following are the notable differences between interface and abstract class in Java.
|An abstract class may contain concrete method.||All the methods of an interface are abstract.|
|To use an abstract class, you need to inherit it. Provide body to (override) the abstract methods if there are any.||To use an interface you need to implement the interface and provide body to (override) all the abstract methods of it.|
|Members of an abstract class can be public, private, protected or default.||All the members of the interface are public by default.|