Collection接口指定一组对象,对象即为它的元素。如何维护这些元素由Collection的具体实 现决定。例如,一些如List的Collection实现允许重复的元素,而其它的如Set就不允许。很多 Collection实现有一个公有的clone方法。然而,把它放到集合的所有实现中也是没有意义 的。这是因为Collection是一个抽象表现。重要的是实现。

当与具体实现打交道的时候,克隆或序列化的语义和含义才发挥作用。所以,具体实现应该决 定如何对它进行克隆或序列化,或它是否可以被克隆或序列化。

在所有的实现中授权克隆和序列化,最终导致更少的灵活性和更多的限制。特定的实现应该决 定它是否可以被克隆和序列化。