易百教程

222、对象克隆的优缺点是什么?

对象克隆的优点:

  • 无需编写冗长且重复的代码。只需使用带有 4 行或 5 行长的 clone() 方法的抽象类。
  • 这是复制对象的最简单和最有效的方法,尤其是当将其应用于已开发或旧项目时。 只需定义一个父类,在其中实现 Cloneable,提供 clone() 方法的定义,任务就完成了。
  • clone()方法是复制数组的最快方法。

对象克隆的缺点:

  • 要使用 Object.clone() 方法,必须在代码中更改许多语法,例如实现 Cloneable 接口、定义 clone() 方法和处理 CloneNotSupportedException,最后调用 Object.clone() 等。
  • 必须实现 Cloneable 接口,而它没有任何方法。 必须使用它来告诉 JVM 可以对我们的对象执行 clone()
  • Object.clone() 是受保护的,所以必须提供自己的 clone() 并从中间接调用 Object.clone()
  • Object.clone() 不调用任何构造函数,因此无法控制对象构造。
  • 如果要在子类中编写 clone 方法,则其所有超类都应在其中定义 clone() 方法或从另一个父类继承该方法。 否则, super.clone() 链将失败。
  • Object.clone()仅支持浅拷贝,但如果需要深度克隆,将需要覆盖它。