今天看了一下java里的clone,在实验中留意到一个问题:如果一个类不重写clone()方法,那么根本无法调用clone()方法。这让我感到困惑,Object类里面写了protected clone(),而java里所有类都是继承Object,为什么它们没法继承Object的clone()方法呢?希望哪位好心人能解释下,感激不尽!
再一个就是深clone和浅clone,个人觉得浅clone不能算真正意义上的clone。而深clone太麻烦了,它必须保证类的非原始类型属性也是cloneable的,属性的属性也是一样,不光要cloneable,还要在实现clone()方法时一个一个的clone。如果一个类的非原始类型的属性又多又深,基本上,这个类就是uncloneable了!
需要说明的是,以上所说的“非原始类型”不包含String,因为String的实例是不可变的,它无需被clone。
以上的想法还很不成熟,希望各位大虾能指点指点
posted on 2007-09-18 11:25
teasp 阅读(472)
评论(4) 编辑 收藏 所属分类:
Java学习