What is the difference between interface and abstract class?

By: Karthik Viewed: 161 times  Printer Friendly Format    


  • interface contains methods that must be abstract; abstract class may contain concrete methods.
  • interface contains variables that must be static and final; abstract class may contain non-final and final variables.
  • members in an interface are public by default, abstract class may contain non-public members.
  • interface is used to "implements"; whereas abstract class is used to "extends".
  • interface can be used to achieve multiple inheritance; abstract class can be used as a single inheritance.
  • interface can "extends" another interface, abstract class can "extends" another class and "implements" multiple interfaces.
  • interface is absolutely abstract; abstract class can be invoked if a main() exists.
  • interface is more flexible than abstract class because one class can only "extends" one super class, but "implements" multiple interfaces.
  • If given a choice, use interface instead of abstract class.


Most Viewed Articles (in Interview )

Interview Question: Is there a particularly good IDE to use with Struts ?

Interview Question: Is Struts compatible with other Java technologies?

Interview Question: Does Struts include its own unit tests?

Interview Question: If the framework doesn't do what I want, can I request that a feature be added?

Interview Question: Is Decorator an EJB design pattern?

Interview Question: How many EJB Objects are created for a Bean?

Question: Difference between forward and sendRedirect in JSP?

Question: What is an output comment in JSP?

What are the contents of web module?

What do you understand by JTA and JTS?

What is difference between Java Bean and Enterprise Java Bean?

What are Access Specifiers available in Java?

What is expression in JSP?

Interview Question: What is Struts?

Interview Question: How is the MVC design pattern used in Struts framework?

Latest Articles (in Interview)

Comment on this tutorial