interface
aanとabstract
クラスの違いは何だろうと思っていましたか?長所/短所は何ですか?いつ何を使用する必要がありますか?
これらの質問の次に、抽象クラスを使用して依存性注入を実行できますか?DIを使用していて、静的フィールド/プライベートメソッドを宣言したいので
インターフェイスに実装を含めることはできません。
抽象クラスは実装を持つことができます-これは継承/実装タイプによって使用できます。
継承する型間で実装を共有する場合は、抽象クラスを使用して、コードの再利用を可能にします(DRYを維持します)。
さらに、クラスは任意の数のインターフェースを実装できますが、単一のクラスからのみ継承できるため、これは別の考慮事項です。
1つの違いは、抽象クラスには実装されたメンバーを含めることができますが、インターフェイスメンバーには実装がないことです。
もう1つは、インターフェースにフィールドを含めることはできず、抽象クラスに含めることができることです。
抽象クラスは、それを継承するクラスのベースコードを再利用することを推奨しますが、インターフェイスは、同じインターフェイスを実装するクラス間の互換性を作成します。
上で最初に述べたように、複数のインターフェースを実装できますが、継承できるのは1つのクラスのみです。