What is the difference between interface and abstract class?

By: Karthik 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: What is ActionServlet?

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

Interview Question: What is Local client view in EJB?

Interview Question: What is the difference between find and select methods in EJB?

Interview Question: Who makes the Struts?

Interview Question: Why it is called Struts?

Interview Question: What is Action Class?

Interview Question: Write code of any Action Class?

Interview Question: What is Struts Validator Framework?

Interview Question: What is ActionForm?

Interview Question: Is Struts compatible with other Java technologies?

Interview Question: Do you have to credit Struts on your own website?

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

Interview Question: What about JSTL and JavaServer Faces ?

Interview Question: Why are some of the class and element names counter-intuitive?

Latest Articles (in Interview)

Comment on this tutorial