質問: デフォルトのメソッドとのインタフェース対java 8の抽象クラス java 8では、 デフォルトメソッド と呼ばれるインタフェースでのメソッドのデフォルト実装が許可されているので、いつabstract classを使用するのかについて混乱があるようです。それでは、いつデフォルトのメソッドとのインタフェースを使用すべきで、いつ抽象クラスを使用すべきなのでしょうか。そのシナリオでは抽象クラスはまだ有用ですか?
回答: 技術的な違いがいくつかあります。抽象クラスは、java 8インターフェースと比較してまだもっと多くのことができます。 抽象クラスはコンストラクタを持つことができます。 抽象クラスはより構造化されており、状態を保持できます。 概念的には、防御側メソッドの主な目的は、java 8での(ラムダ関数としての)新しい機能の導入後の下位互換性です。