2009年10月28日 星期三

Inner class

為什麼需要inner classes?

一般來說, inner class 會繼承某個class或實作某interface, 而且inner class內的程式碼會操作
其outer class物件. 所以也可以講, inner class所提供的其實是針對outer class的某個窗口.

但如果我只需要"指向某個interface"的reference, 為什麼不直接讓outer class實作interface就好?
若這麼做符合需求, 就這麼做. 那麼由inner class實作interface與outer class實作的區別在那呢?
後者比較沒享受到interface的便利性.所以

    每個inner class 都能夠各自extends某一個實作類別(implementation).因此, inner class不受限
    於outer class是否已extends自某一類別.
   
inner class所提供的"繼承自多個具象(concrete)或抽象(abstract)類別"的能力, 可說是多重繼承問題的解決方案.

0 意見: