This week's book giveaway is in the OO, Patterns, UML and Refactoring forum.
We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Cloning in java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Cloning in java" Watch "Cloning in java" New topic

Cloning in java

Ritu Kapoor
Ranch Hand

Joined: Oct 03, 2004
Posts: 102
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.

Burkhard Hassel
Ranch Hand

Joined: Aug 25, 2006
Posts: 1274
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
Mladen Grabowsky

Joined: Sep 19, 2007
Posts: 29
clone() should not be used to copy objects, use copy constructors or factory methods instead.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link:
subject: Cloning in java
It's not a secret anymore!