Effective JAVA(1)
抽象クラスよりインターフェースを選ぶ方がいいと言う。
それでは、抽象クラスとインターフェースとは何が違うのだろう。
- 抽象クラスは単一継承のみが実現できるが、インターフェースは多重継承ができる。
- 抽象クラスはメソッド実装を定義できるが、インターフェースはできない。
- 抽象クラスを継承した場合、抽象メソッドのみを実装すればよいが、インターフェースはすべてのメソッドを実装しなければならない。
抽象クラスは継承という構造をもたらすが、インターフェースは型を定義する。