Java 克隆对象的实例是什么?
如果类a公开了对象的Java 克隆对象的实例是什么?,java,clone,Java,Clone,如果类a公开了对象的clone()方法: @Override public Object clone() { return super.clone(); } 使用clone()创建的实例的instanceof(或getClass())是什么? 使用clone()方法创建的类B扩展了一个的实例如何 编辑 澄清:我这样问是因为即使在编译之前,EclipseJava编辑器要求将返回的clone()实例强制转换为指定的对象。这表明返回的类是Object(从技术上讲是这样,但到目前为止所有的答案
clone()
方法:
@Override
public Object clone() {
return super.clone();
}
使用clone()
创建的实例的instanceof
(或getClass()
)是什么?使用
clone()
方法创建的类B扩展了一个
的实例如何
编辑澄清:我这样问是因为即使在编译之前,EclipseJava编辑器要求将返回的clone()实例强制转换为指定的对象。这表明返回的类是
Object
(从技术上讲是这样,但到目前为止所有的答案都说该类应该是A)
只要它通过调用
super.clone()
使用object.clone()
,并且应该由
读这本书
这会打印字符串
,但错误在于:
它应该是父类的实例。但这取决于实现者编写一个传统的克隆方法
在这方面以及其他方面,Java中的克隆是完全不可能的。与启动器一样,它使用原始父类,通过调用super.clone()始终使用Object.clone()。更多访问
答案已更新,请看!!嗨,你有没有办法把链接的主题总结成你的答案。这将使您的答案更好,并且不依赖于外部材料,这些材料可以随时移除。谢谢此帖子已在要标记或删除的审阅队列中弹出。请避免只链接答案。我以前也对你的一些回答发表过评论。请编辑和详细说明或张贴链接作为评论,因为你有足够的声誉
A original = new A();
A cloned1 = original.clone(); // Eclipse marks this as error
A cloned2 = (A) original.clone(); // This is OK
public class SomeTest {
@Override
protected Object clone() {
return "";
}
public static void main(String[] args) {
System.out.println(new SomeTest().clone().getClass().getSimpleName());
}
}