在类没有实现cloneable接口的前提下调用基本object类的clone()方法,程序会报CloneNotSupportedException异常。
查看object类的源码可知,clone()方法是一个native方法,故而效率很高,所以为了提高clone的效率,需要声明类实现了Cloneable接口,虽然此类并没有规定任何需要实现的方法。
clone三部曲:
1 类声明实现Clone接口
2 调用super.clone()方法实现对象的浅拷贝
3 修改得到的clone对象中引用属性的值,完成深拷贝。
故而,实现clone接口有两个原因:效率和减少clone对象生成的复杂性。
原型模式