java內部類,為什麼需要內部類?

夏末18844發表於2018-10-31

為什麼需要內部類? 解決了多繼承的問題,繼承具體或抽象類。

一般來說,內部類繼承自某個類或實現某個介面,內部類的程式碼操作建立它的外圍類的物件。所以可以認為內部類提供了某種進入其外圍類的視窗。

內部類最吸引人的原因是:每個內部類都能獨立地

繼承自一個(介面的)實現,所以無論外圍類是否已經繼承了某個(介面的)實現,對於內部類都沒有影響。 

如果沒有內部類提供的、可以繼承多個具體的或抽象的類的能力,一些設計與程式設計問題就很難解決。從這個角度看,內部類使得多重繼承的解決方案變得完整。介面解決了部分問題,而內部類有效的實現了“多重繼承”。也就是說,內部類允許繼承多個非介面型別。

考慮這樣一種情形:如果必須在一個類中以某種方式實現兩個介面。由於介面的靈活性,你有兩種選擇:使用單一類或者使用內部類。但如果擁有的是抽象的類或具體的類,而不是介面,那就只能使用內部類才能實現多重繼承。

使用內部類,還可以獲得其他一些特性:

- 內部類可以有多個例項,每個例項都有自己的狀態資訊,並且與其外圍類物件的資訊相互獨立。

- 在單個外圍類中,可以讓多個內部類以不同的方式實現同一個介面或繼承同一個類。

- 建立內部類物件的時刻並不依賴於外圍類物件的建立。

- 內部類並沒有令人迷惑的is-a關係,它就是一個獨立的實體。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557905/viewspace-2218194/,如需轉載,請註明出處,否則將追究法律責任。

相關文章