An abstract class is a class that is declared abstract – it may or may not contain abstract
methods. The keyword “abstract” is used to create an abstract class just before the class keyword in the class declaration.
In simple terms, an interface is a collection of abstract methods that is used to specify a behaviour that the class has to implement.
Difference between Abstract Class and Interface in Java
- Implementation for Java abstract class cannot be provided by interface but an abstract class can provide an implementation for the interface in Java.
- “Method Type” of Abstract Class and Interface in Java – The second major difference between the two is that while an interface can only have abstract methods, an abstract class can have both abstract and non-abstract methods. However, since Java 8, an interface can have default and static methods too.
- “Access Modifiers” of Abstract Class and Interface in Java – An abstract class can have public, private and protected access modifiers, however methods of an interface are implicitly public and abstract. You cannot use any other access modifier with interface methods’.
Inheritance vs. Abstraction
- An abstract class can be extended using the keyword ‘extends’ while a Java interface uses the keyword ‘implements’ to be implemented.
- “Keyword” of Abstract Class and Interface in Java– While “abstract” keyword is used to declare an abstract class method as abstract, however, interfaces are entirely a different story; they can only have public, static final constants and method declarations.
- “Use” of Abstract Class and Interface in Java – While an interface is ideal for type declaration, an abstract class is best suited for code reusability and evolution perspective. An interface looks like a class, but it is not a class.
- “Reliability” of Abstract Class and Interface in Java– Another major difference between an abstract class and an interface is that the former is a bit faster than the latter because a search is usually involved in an interface before any overridden method is called in Java.
Final Java Variables
- Abstract class in Java may or may not have variables declared as final but in Java interfaces, it is by default that they will declare final.
Type of Variable
- Java interface can only have static and final variables while abstract class in Java can have both final and non-final as well as static and non-static variables.
For more information about Abstarct class and Interface.
Join us @ TCCI.
Call us @ 9825618292
Visit us @ http://www.tccicomputercoaching.com