Main difference is methods of a Java interface are implicitly abstract and c annot have implementations.
A Java abstract class can have instance methods that implements a default behavior. Variables declared in a Java interface is by default final. An abstract cla ss may contain non-final variables. Members of a Java interface are public by default. A Java abstract class can have the usual flavors of class members li e private, protected, etc.. Java interface should be implemented using eyword implements ; A Java abstract class should be extended using eyword extends . An interface can extend another Java interface only, an abstract class can e xtend another Java class and implement multiple Java interfaces. A Java class can implement multiple interfaces but it can extend only one ab stract class. Interface is absolutely abstract and cannot be instantiated; A Java abstract class also cannot be instantiated, but can be invo ed if a main() exists. In comparison with java abstract classes, java interfaces are slow as it req uires extra indirection.