因此,为了简洁明了,我列出了一系列形状,这些都是实现我的Shape接口的所有形状(圆形,正方形等)。
现在,我试图深克隆/复制此列表中的每个形状并将其放置在新列表中。我使所有形状都实现了Clonable,并制作了自己的方法来制作它们的深层副本。
问题是,当它们仅定义为Shapes时,我无法达到clone方法。我的问题是我如何掌握克隆方法,而不必将其铸造为具体形状。
我一直在考虑并谷歌搜索,但是我似乎找不到合适的答案。所以我有了一个主意。
我可以添加一个方法“ void callCloneMethod();”在我的形状界面中并实现调用每种具体形状的clone()方法吗?IOW可以通过接口实现的方法调用非接口实现的方法。 ?
谢谢你。
您是否尝试让Shape接口扩展Cloneable接口?如果我没有记错的话,这应该允许您为任何Shape调用该方法。然后,您当然应该实现clone方法。希望这会有所帮助。