Effective JAVA(1)

抽象クラスよりインターフェースを選ぶ方がいいと言う。
それでは、抽象クラスとインターフェースとは何が違うのだろう。

  1. 抽象クラスは単一継承のみが実現できるが、インターフェースは多重継承ができる。
  2. 抽象クラスはメソッド実装を定義できるが、インターフェースはできない。
  3. 抽象クラスを継承した場合、抽象メソッドのみを実装すればよいが、インターフェースはすべてのメソッドを実装しなければならない。


抽象クラスは継承という構造をもたらすが、インターフェースは型を定義する。