Java - Interview Questions and Answers on Abstract Classes and Interfaces

Q1.  Difference between Abstract and Concrete Class ?

Ans. Abstract classes are only meant to be sub classed and not meant to be instantiated whereas concrete classes are meant to be instantiated.

Q2.  What are Marker Interfaces ? Name few Java marker interfaces ?

Ans. These are the interfaces which have no declared methods.

Serializable and cloneable are marker interfaces.

Q3.  Is runnable a Marker interface ?

Ans. No , it has run method declared.

Q4.  Can we declare interface methods as private ?

Ans. No. 

Q5.  What is an Externalizable interface ?

Ans. Externalizable interface is used to write the state of an object into a byte stream in compressed format.

Q6.  Difference between serializable and externalizable interface ?

Ans. Serializable is a marker interface whereas externalizable  is not.

Q7.  Can we declare an abstract method private ?

Ans. No Abstract methods can only be declared protected or public.

Q8.  What are the design considerations while making a choice between using interface and abstract class ?

Ans. Keep it as a Abstract Class if its a "Is a" Relationsship and should do subset/all of the functionality. Keep it as Interface if its a "Should Do" relationship.