Wal*_*ang 21
简答:浅.
不那么简短的回答:除非被覆盖,否则AnyRef.clone()使用Java的Object.clone()作为其实现.
Object.clone()上的Javadoc:
类Object的方法clone执行特定的克隆操作.首先,如果此对象的类未实现Cloneable接口,则抛出CloneNotSupportedException.请注意,所有数组都被视为实现Cloneable接口.否则,此方法创建此对象的类的新实例,并使用该对象的相应字段的内容初始化其所有字段,就像通过赋值一样; 这些字段的内容本身不会被克隆.因此,该方法执行该对象的"浅拷贝",而不是"深拷贝"操作.
请注意:
答案很长:阅读Effective Java,第2版,第11项:明智地覆盖克隆
摘要:不要使用它.有更好的选择.