1. 程式人生 > >Java類實現某個介面後,是否需要實現介面中的所有方法?

Java類實現某個介面後,是否需要實現介面中的所有方法?

1.結論

    並不是所有的類實現介面後都必須實現介面的所有方法!

2.特殊情況

    當Java抽象類實現某個介面後沒必要實現所有的方法。

3.注意點

    當Java普通類實現介面後必須實現介面中的所有方法。

4.原因
  • 為什麼抽象類不需要實現所有方法?

         因為抽象類本身是具有抽象性的,它的方法也大多不需要進行實現,只需要宣告,其他實現的過程多交給繼承它的子類。而介面本身就更為抽象的一種形式,所以如果讓一個本來抽象的類去實現一個更為抽象的介面的所有方法是沒有必要的,除非對於抽象類本身而言需要介面的一些方法來完善自身。而沒有實現的其他方法完全可以交給它的派生類去實現

  • 為什麼普通類需要實現所有方法?

        普通類中的所有方法都需要有方法體,即使是空方法。當一個普通類實現了一個介面後就必須要實現其所有的方法,如果有任何一個方法沒有實現,在類向介面向上轉型的時候就會因為丟失資料(因為此時普通類中沒有介面的完整資料)導致轉型失敗,這樣顯然是不允許的。

5.同時使用抽象類和介面有什麼好處?

      如果一個普通類想要實現介面的某些方法,此時需要藉助抽象類,可以讓抽象類先實現介面中的部分方法,然後普通類通過繼承抽象類後再去實現自己需要的介面中的方法。