【发布时间】:2016-06-19 21:26:11
【问题描述】:
我一直以为clone()创建对象而不调用构造函数。
但是,在阅读 Effective Java 第 11 条:明智地覆盖克隆时,我发现了一个声明,它说
“不调用构造函数”的规定太强了。一种 乖巧的克隆方法可以调用构造函数来创建对象 正在构建的克隆内部。如果类是最终的,则克隆 甚至可以返回由构造函数创建的对象。
谁能给我解释一下?
【问题讨论】:
-
clone()方法不调用构造函数,它的默认行为是执行浅拷贝。但是如果我们想要执行深拷贝,我们需要覆盖clone()方法,我们可以从中返回新的对象。