我在 Java 中遇到了一个小问题。我有一个名为 Modifiable 的接口。实现此接口的对象是可修改的。
我还有一个 ModifyCommand 类(带有命令模式),它接收两个 Modifiable 对象(在列表中进一步交换它们 - 这不是我的问题,我已经设计了那个解决方案)。
ModifyCommand 类首先复制 Modifiable 对象。从逻辑上讲,我让我的 Modifiable 接口扩展了 Cloneable。然后接口定义了一个 clone() 方法,它的实现类必须重新定义。
然后,在 ModifyCommand 中,我可以这样做:firstModifiableObject.clone()。我的逻辑是实现 Modifiable 的类必须重新定义 Object 的 clone 方法,因为它们将是 Cloneable (这就是我想要做的)。
问题是,当我定义类实现 Modifiable 并且我想重写 clone() 时,它不会让我说 Object 类中的 clone() 方法隐藏了 Modifiable 中的方法。
我该怎么办?我的印象是“我做错了”......
谢谢,
纪尧姆。
编辑:它认为我会忘记 clone() 的事情。我将a)假设传递给Modifiable对象(实现接口)的对象已经被克隆或b)创建另一个称为copy()的方法,该方法基本上会对Modifiable对象进行深层复制(或者通用解决方案可能会起作用......)。