ICloneable介面中只有一個方法: Clone()
public interfcae ICloneable{
Object Clone();
}
物件需要有複製功能時,請實做ICloneable
Clone又可以分為deep-copy , shallow-copy兩種
deep-copy除了複製物件外,也會該物件指向的其他物件一起複製
修改複製的物件並不會影響原來的物件
shallow-copy則是指複製原本物件,但是物件指向的參考位址與來源物件一致
但實作時使用者很難去判斷這個Clone是 Deep-copy or shallow-copy
所以本書中反而建議大家不要使用 (這樣幹嘛還寫出來???)
如果需要有複製功能的話,考慮直接加在物件中
public class Customer{
public Customer Clone();
}