About Marker interface in Java :
Marker interface is an interface with no method declaration.(Interface with no method definition)
Serializable is a one of the commonly used marker interface in java.
Some of the commonly used Marker interfaces
- java.lang.Cloneable
- java.util.EventListener
According to Object Oriented point of view Interface means Some behavior. So ,If a class implement one interface, then that class becomes the instance of that interface. That means it implements that behavior.(This implementation generally through give codes to the method declared in the interface).
"But Marker interfaces will not have any method declaration. (That means it will not have any behavior to Implement)"
Then what is the purpose of implementing this useless interface?
A class implements a marker interface JVM will automatically understand that some special behavior is going to be implemented by the object of that class. So JVM create one mark on that object. So internally we force that object to execute some behavior.
Example :
clone() : This method is in class Object. If a class implement the " Cloneable " interface then JVM internally understand that some job has to be done by the object of that class . So JVM expect clone() method to execute.
So internally we force the clone() method to execute.
So ,
1) If a class implement Cloneable interface it will tell the JVM that object of this class can be cloned (by implementing the method clone)
2) If a class implement Serializable interface it will tell the JVM that non-transient variables of this object can be stored
Exception : Marker interface can contain method declaration. Marker interface may or may not have method declaration....
Runnable is a marker interface. But it is having a mthod run().