Javaのインターフェースと抽象クラスの違いについて尋ねることは、非常に基本的で古典的で単純な質問であることを私は知っています。しかし、この質問は少し異なります。
Javaは、菱形継承問題を回避するために複数のクラスからの継承をサポートしていないことを理解しているため、一種の多重継承を容易にする代替方法としてインターフェースの概念を考え出しました。しかし、これがインターフェースが存在する唯一の理由ですか?
何らかの理由で、新しいバージョンの1つにあるJava Guysがこの制限を克服し、複数のクラスからの継承を許可すると仮定した場合、抽象クラスとインターフェースの違いは何でしょうか。それらは単に同義語でしょうか?インターフェイスにはまだ存在する理由がありますか、それとも単に冗長になりますか?