1. 程式人生 > >子類和父類實現同一個介面的意義

子類和父類實現同一個介面的意義

在閱讀Java.util.ArrayList原始碼的過程中,我產生了一個小疑惑,ArrayList實現了List這個介面(這沒問題,學Java的都知道),但ArrayList的抽象父類AbstractList同樣實現了List介面。


想了很久這樣設計有什麼特別的作用? 父類已經實現了介面,子類繼承父類的所有方法,同樣能實現介面的所有方法啊,完全沒必要子類再去實現該介面!

這樣做沒有任何的作用,但是Java原始碼應該不會犯這麼低階的錯誤吧?

帶著疑問上網搜尋了一番,發現已經有些人提出了相似的提問。

根據網上相關的問題答案和自己在eclipse的測試。

最後得出的結論是:效果上沒什麼特別用途,僅僅是為了讓人閱讀原始碼時知道子類實現了該核心介面

。就像很多人都知道 ArrayList實現了List介面就夠了,而不需要知道它繼承AbstractList的相關細節。