,但它不是强制性的
克隆对象和原对象使用equals()方法比较应该是相等的,但它不是强制性的
因为每个类的基类都是Object,所以都有clone方法,但是它是protected,所以不能在类外访问...克隆一个对象,需要对clone重写
如何实现克隆
在说实现前,得区分下浅克隆和深克隆
浅克隆:原对象和克隆对象不同,但对象内的成员引用相同
深克隆:原对象和克隆对象不同,且对象内的成员引用也不同
不同:...深克隆
有两种实现方法
多层实现Cloneable类
利用序列化和反序列化
1.多层实现Cloneable类
让上述的Bag类也实现Cloneable类,并重写clone方法
public class...}
这样便可实现深克隆,但这种方法很麻烦,若Bag类中还含有成员引用,则又需要再让它实现Cloneable接口重写clone方法,这样代码会显得很臃肿,且繁琐。...这种方法是利用序列化对象后可将其拷贝到流里,而原对象仍在jvm中,然后从流中将其反序列化成另一个对象到jvm中,从而实现深克隆
总结
克隆可分为浅克隆和深克隆,实际应用中一般使用深克隆
深克隆有两种实现方法