Java 文档说 -
Object 类本身并没有实现接口 Cloneable,因此在类为 Object 的对象上调用 clone 方法将导致在运行时抛出异常。
这就是为什么 Object 类中的 clone 方法受到保护的原因?是这样吗 ?
这意味着任何不实现可克隆的类在调用其克隆方法时都会抛出 CloneNotSupported 异常。
我运行了一个测试程序
public class Test extends ABC implements Cloneable{
@Override
public Object clone() throws CloneNotSupportedException {
System.out.println("calling super.clone");
return super.clone();
}
public static void main(String[] args) {
Test t = new Test();
try{
t.clone();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
class ABC{
}
从 Class Test 的克隆方法 super.clone 被调用?
为什么它不抛出异常?