重複の可能性:
インターフェイスと抽象クラスの違いは何ですか?
Javaのインターフェースと抽象クラスの違いは何ですか? どちらか一方を使用する必要があるのはなぜですか?
抽象クラスには実装を含めることができますが、これはクラスであり、拡張できるクラスは1つだけです。
インターフェイスには実装がない宣言が含まれているだけであり、必要な数のインターフェイスを実装できます。
メソッドを実装する必要がない場合は、インターフェースを使用してください。
メソッドを実装する必要がある場合は、抽象クラスを使用しますが、インターフェイスを実装することを検討してください。これにより、たとえば多重継承が不可能なために抽象クラスを使用できない場合に、代替の実装を使用できるようになります。
非常に幅広い質問です。それらの間には多くの違いがあります。ここでそれらすべてについて説明することは不可能です。グーグルで良い答えを得ることができますが、
大まかに言えば、抽象クラスは部分的に実装された部分的に実装されていない構造ですが、インターフェイスは完全に実装されていない構造です
これは、2年前に書かれた実際の例を使用した私の説明です-
http://karthikjcecs.wordpress.com/2009/01/14/java-interfaces-versus-abstract-class/
理解を深めるのに役立つことを願っています。