如果一个类A公开了Object的clone()方法:
使用
澄清:我之所以问这个问题,是因为即使在编译之前,Eclipse java编辑器也需要将返回的clone()实例强制转换为分配的对象。 这表明返回的类是
@Override
public Object clone() {
return super.clone();
}
使用
clone()
创建的A类实例的instanceof
(或getClass()
)是什么?使用clone()
方法创建的B extends A
类的实例呢?
编辑澄清:我之所以问这个问题,是因为即使在编译之前,Eclipse java编辑器也需要将返回的clone()实例强制转换为分配的对象。 这表明返回的类是
Object
(从技术上讲确实如此,但到目前为止所有答案都说该类应该是A)。A original = new A();
A cloned1 = original.clone(); // Eclipse marks this as error
A cloned2 = (A) original.clone(); // This is OK