by Dinesh Thakur Category: Classes

Main difference is methods of a Java interface are implicitly abstract and cannot 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 class 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 like private, protected, etc..

    Java interface should be implemented using keyword “implements”; A Java abstract class should be extended using keyword “extends”.

    An interface can extend another Java interface only, an abstract class can extend another Java class and implement multiple Java interfaces.

    A Java class can implement multiple interfaces but it can extend only one abstract class.

    Interface is absolutely abstract and cannot be instantiated; A Java abstract class also cannot be instantiated, but can be invoked if a main() exists.

    In comparison with java abstract classes, java interfaces are slow as it requires extra indirection.


About Dinesh Thakur

Dinesh ThakurDinesh Thakur holds an B.SC (Computer Science), MCSE, MCDBA, CCNA, CCNP, A+, SCJP certifications. Dinesh authors the hugely popular blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps. For any type of query or something that you think is missing, please feel free to Contact us.

Related Articles