我在Java中遇到一个小问题。我有一个名为Modifiable的界面。实现此接口的对象是可修改的。
我还有一个ModifyCommand类(具有Command模式),该类接收两个Modifiable对象(以在进一步的列表中交换它们-
这不是我的问题,我已经设计了该解决方案)。
ModifyCommand类从制作可修改对象的克隆开始。从逻辑上讲,我使我的Modifiable接口扩展了Cloneable。然后,接口定义一个clone()方法,其实现类必须重新定义。
然后,在ModifyCommand中,我可以执行以下操作:firstModifiableObject.clone()。我的逻辑是,实现Modifiable的类将必须从Object重新定义clone方法,因为它们将是Cloneable的(这就是我想要做的)。
问题是,当我定义类实现Modifiable时,并且我想覆盖clone()时,它不会让我说,这表明Object类中的clone()方法对Modifiable隐藏了一个。
我该怎么办?我的印象是“我做错了” …
谢谢,
纪尧姆。
编辑:它认为我会忘记clone()的东西。我将要么a)假定已经克隆了传递给Modifiable对象(实现接口)的对象,要么b)制作了另一个称为copy()的方法,该方法基本上将对Modifiable对象进行深拷贝(也许通用解决方案会起作用…)。