今天看了一下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 閱讀(478)
評論(4) 編輯 收藏 所屬分類:
Java學習