Marker Interfaces in Java
Join the DZone community and get the full member experience.
Join For FreeMarker Interfaces in Java have special significance because of the fact that they have no methods declared in them which means that the classes implementing these interfaces don't have to override any of the methods. A few of the marker interfaces already exist in the JDK like Serializable and Cloneable.
One can also create their own custom interfaces which doesn't
have any method. The purpose of these interfaces is to force some kind
of functionality in the classes by providing some functionality to a
class if it implements the marker interface.
A common question
asked very frequently is about Runnable interface being marker or not.
Runnable interface is not marker because Runnable interface has the
public void run() method declared inside it. A very good example of
marker interface is Serializable where the class implements can be used
with ObjectOutputStream and ObjectInputStream classes.
The Java
language specification doesn't itself define the term marker interface
and the term has been coined by authors, developers and designers. One
common question asked is if we can create a marker interface or not and
the answer is yes because of following reason:
We can't create
marker interface similar to Serializable or Cloneable but we can
simulate the functionality by writing extra code around the custom
marker interface.
Published at DZone with permission of Sandeep Bhandari. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments