You should override the clone() method very judiciously. Implementing a properly functioning clone method is complex and it is rarely necessary. You are better off providing some alternative means of object copying like serializing and deserializing (could have a performance impact), static factory method or simply not providing the capability. A better approach is to provide a copy constructor or a static factory method in place of a constructor.
Static factory method
[ September 07, 2008: Message edited by: arulk pillai ]