Interface存在的原因有二: 1.能夠向上轉型為多個型別 2.讓客戶端無法產生物件,確保"介面"的設計意義 如果使用的base class不帶任何函式定義式或任何成員變數 應優先選用Interface,其次才考慮abstract class 基本上在確定某些東西會成為base class,優先考量就是使他成為Interface 過度使用Interfaces會帶來額外的複雜度,必須確定有需求再使用 在類別實作多個Interface時 有不同的Interface間採用相同的method命名會導致出錯,應避免此情形 將Interfaces置於某個class中會形成巢狀的Interfaces 巢狀的Interfaces可以為private,意義是實作他的類別在外部不能向上轉型 而巢狀位於另一個Interface內時,那些Interfaces會自動成為public