以下是我的示例代码:
class One implements Cloneable {
@Override
public One clone() throws CloneNotSupportedException {
One obj = (One) super.clone();
return obj;
}
}
public class Two extends One {
@Override
public Two clone() throws CloneNotSupportedException {
Two obj1 = (Two) super.clone(); // Line 12
return obj1;
}
public static void main(String[] args) {
boolean num = true;
try {
if ((new Two().clone()) instanceof One) {
num = false;
}
} catch (CloneNotSupportedException e) {
System.out.println(e);
}
System.out.println(num);
}
}
它打印错误。
有人可以解释第12行的情况吗? 为什么这个垂头丧气不会引发异常?
答案 0 :(得分:0)
由于第4行。它呼叫Object.clone()
。那个方法做MAGIC。它使用与现有instnce相同的运行时类型创建新实例。