假设
Class B
继承自 class A
,而 class A
是可克隆的,代码如下:public class A implements Cloneable {
public Object clone() throws CloneNotSupportedException {
A ac = (A) super.clone();
return ac;
}
}
public class B extends A {
public Object clone() throws CloneNotSupportedException {
B a = (B) super.clone();
return a;
}
}
为什么在下一行执行从A到B的向下转换(down-cast)是合法的:
B a = (B) super.clone(); // (super of B is A)
当进行下行转换时,出现运行时错误?
A a = new A();
B b = (B) a.clone();
提前感谢您!
B b = new B();
和A a = (A) b.clone();
这两行代码? - blalasaadri