-5

interfaceaanとabstractクラスの違いは何だろうと思っていましたか?長所/短所は何ですか?いつ何を使用する必要がありますか?

これらの質問の次に、抽象クラスを使用して依存性注入を実行できますか?DIを使用していて、静的フィールド/プライベートメソッドを宣言したいので

4

2 に答える 2

5

インターフェイスに実装を含めることはできません。

抽象クラスは実装を持つことができます-これは継承/実装タイプによって使用できます。

継承する型間で実装を共有する場合は、抽象クラスを使用して、コードの再利用を可能にします(DRYを維持します)。

さらに、クラスは任意の数のインターフェースを実装できますが、単一のクラスからのみ継承できるため、これは別の考慮事項です。

于 2013-02-22T14:39:34.913 に答える
0

1つの違いは、抽象クラスには実装されたメンバーを含めることができますが、インターフェイスメンバーには実装がないことです。

もう1つは、インターフェースにフィールドを含めることはできず、抽象クラスに含めることができることです。

抽象クラスは、それを継承するクラスのベースコードを再利用することを推奨しますが、インターフェイスは、同じインターフェイスを実装するクラス間の互換性を作成します。

上で最初に述べたように、複数のインターフェースを実装できますが、継承できるのは1つのクラスのみです。

于 2013-02-22T14:39:41.997 に答える