我们还年轻,但这不是你浪费青春的理由
克隆和复制
clone,有人称之为克隆,有人称之为复制,其实都是同一个东西
本文称之为"克隆",毕竟人家方法名叫"clone"
为什要用克隆
想一想,为什么需要克隆...clone() throws CloneNotSupportedException;
仔细看,它是个native方法,native方法是由非java语言实现的(因为java本身无法直接对操作底层进行访问和操作...,但它不是强制性的
因为每个类的基类都是Object,所以都有clone方法,但是它是protected,所以不能在类外访问
克隆一个对象,需要对clone重写
如何实现克隆
在说实现前,得区分下浅克隆和深克隆...深克隆
有两种实现方法
多层实现Cloneable类
利用序列化和反序列化
1.多层实现Cloneable类
让上述的Bag类也实现Cloneable类,并重写clone方法
public class...}
这样便可实现深克隆,但这种方法很麻烦,若Bag类中还含有成员引用,则又需要再让它实现Cloneable接口重写clone方法,这样代码会显得很臃肿,且繁琐。