例如,我们编写类XXX来实现Cloneable,并且我们覆盖了类XXX中的方法clone,那么是否有必要在方法中调用super.clone?
发布于 2012-08-07 13:58:14
几个重要的指针
如果您不需要自己实现,可以使用object的clone方法,但这将为您提供对象的浅层副本。如果你想做更多的事情,最好给出你自己的实现。
关于你最初的问题,不,如果你知道你的代码可以处理所有事情,那么调用一个超级方法并不是一种强制。但如果需要使用超类(在本例中为对象类)的功能,则应调用超方法
发布于 2012-08-07 13:48:28
是。如果不调用超类实现,它所需的任何数据都不会复制到新的克隆中。
更新例如,超类可能希望将它的私有变量复制到新的克隆。
实际的实现应该是
XXX clone = super.clone();
// 'clone' now has all the data the super class wants to know.
// add any details from your XXX class to it here.
return clone;发布于 2012-08-07 13:48:38
*编辑ok我错了这里是super.clone()调用的:
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#clone%28%29
您应该调用super.clone()
https://stackoverflow.com/questions/11839928
复制相似问题