一般來說, 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 意見:
張貼留言