This is a token interface that allows Java to know that the implementing class is intentionally intended for cloning (similar use with other token interfaces). If you read further, you will find below:
By convention, classes that implement this interface must override Object.clone (which is protected) with a public method. See Object.clone () for details on overriding this method.
You need to provide a custom cloning method. With the Cloneable interface, Java knows that you intentionally support the cloning of your object. By providing your own clone method, you override the default clone method of the object.
This way you get the flexibility to decide (Mark) which objects can be cloned and which not. If to clone, then to what level (very useful in the case of object graphs).
Yogendra singh
source share