This is the way I understand object cloning with an example :
import java.util.GregorianCalendar;
public class CloneType1 {
public static void main(String[] args) {
GregorianCalendar obj = new GregorianCalendar();
GregorianCalendar objCopy = (GregorianCalendar) obj.clone();
System.out.println(obj.getTime());
System.out.println(objCopy.getTime());
}
}
Is there any benefit of using this way of implementing cloning:
public class UsingCloneable implements Cloneable {
int rollno;
String name;
public UsingCloneable(int rollno,String name) {
this.rollno=rollno;
this.name=name;
}
public Object clone()throws CloneNotSupportedException{
return super.clone();
}
public static void main(String[] args) {
try {
UsingCloneable obj = new UsingCloneable(45, "SuperMan");
UsingCloneable objCopy = (UsingCloneable) obj.clone();
System.out.println(obj.name+"\t"+obj.rollno);
System.out.println(objCopy.name+"\t"+objCopy.rollno);
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}