We have a clone() defined in Object class. If we try to execute a class overriding clone(), it throws CloneNotSupportedException. But if we implement Cloneable interface(which is a marker interface), everything goes fine. Now the question is, why do not we have a clone() in Cloneable interface rather then in Object class.
Is it in the Object only because we require a default implementation of a clone() and since Object is the superclass, so we cannot somehow implement that interface in Object class. But then Why do we require a Cloneable Interface at all. We can override its implementation in our subclass also.
Kindly help me to clarify my doubts.
Joined: Aug 25, 2006
The Cloneable interface should be implemented, so when asked if an object of this class is an instanceof Cloneable you get a true.
By the way, Bert Bates somewhere here on this forum wrote that clone() is not a part of the exam.
all events occur in real time
Joined: Sep 19, 2007
clone() should not be used to copy objects, use copy constructors or factory methods instead.