熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Javascript >> 正文

改寫clone的時候要小心

2013-11-23 17:57:43  來源: Javascript 

  一個專家級程序員從來都不會去改寫clone方法也從來不去調用它除非是為了低開銷來拷貝一個數組
  
  一個為了繼承而設計的類如果未能實現一個行為良好的protected的clone方法它的子類要實現cloneable接口是不可能的
  
  真的要做如何實現改寫clone方法呢?
  
  所有實現了cloneable接口的類都應該用一個公有的方法改寫clone這個方法要首先調用superclone如果所有的類都實現這麼做那麼最終就會回溯到object的clone方法不會得到clone得到不對的對象的情況調用superclone之後把所有復雜對象設成初始狀態原始類型數據可以直接復制
  
  通常情況下此時還需要對內部的任何可變對象(比如堆棧鏈表)進行深層結構的拷貝不能簡單的復制
  
  比如A實例有一個堆棧Stack調用A的clone方法如果僅僅是令B的Stack=A的stack那麼修改A的stack同時會影響到B中stack的情況所以我們必須進行深層拷貝防止這個問題
From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25437.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.