Difference between Abstract class and Interface

Difference Between Interface and Abstract Class




    InterfaceAbstract Class
    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 onlyan 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.A Java class 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.
    Java interfaces are slow as it requires extra indirection.Java abstract classes are faster than the Interface.

    No comments:

    Post a Comment