javaにおける抽象クラスとインターフェースの違い

実は,抽象クラスとインターフェースの違いをしっかりと分かっていなかったのでちょっとまとめてみる.

両方ともオブジェクト指向での多様性に対応するシステムなのだが,機能にいくつか違いがある.

それぞれ以下の様な定義になっている.

インターフェース

インターフェースは抽象メソッドとstaticメンバからなるクラス(のようなもの).

抽象クラス

抽象クラスは抽象メソッドを持つクラス.


では,この2つの違いは何かというと,

1つのクラスが2種類以上のインターフェースを持つことはできるが,
抽象クラスは1つしか持てない

ことだと思った.