2

重複の可能性:
インターフェイスと抽象クラスの違いは何ですか?

インターフェイスと抽象化の違いについてのガイドを読みましたが、ガイドが言うことを理解していませんでした: 抽象メソッドを使用できるのに正確にインターフェイスを使用する理由、答えは、インターフェイスを使用するために特定の抽象クラスから継承する必要がないということです。したがって、同じクラスから継承しない 2 つのクラスには、類似したインターフェイスを含めることができます。実際にインターフェイスを使用すると、冗長なメソッドで親クラスを膨らませることができなくなります。私は本当にそれを理解しようとしていましたが、登録されませんでした。誰かがここで私を助けてくれれば、とても感謝しています.

4

2 に答える 2

2

インターフェイスと抽象クラスをいつ使用するかに関するいくつかの推奨事項 (礼儀: MSDN)

1) コンポーネントの複数のバージョンを作成することが予想される場合は、抽象クラスを作成します。抽象クラスは、コンポーネントをバージョン管理するための単純で簡単な方法を提供します。基本クラスを更新することにより、すべての継承クラスが変更で自動的に更新されます。一方、インターフェイスは一度作成すると変更できません。新しいバージョンのインターフェイスが必要な場合は、まったく新しいインターフェイスを作成する必要があります。

2) 作成している機能がさまざまな異なるオブジェクトで役立つ場合は、インターフェイスを使用します。抽象クラスは主に密接に関連するオブジェクトに使用する必要がありますが、インターフェイスは関連のないクラスに共通の機能を提供するのに最適です。

3) 小さくて簡潔な機能を設計する場合は、インターフェイスを使用します。大規模な機能ユニットを設計している場合は、抽象クラスを使用してください。

4) コンポーネントのすべての実装に共通の実装機能を提供する場合は、抽象クラスを使用します。抽象クラスを使用すると、クラスを部分的に実装できますが、インターフェイスにはメンバーの実装が含まれていません。

http://msdn.microsoft.com/en-us/library/scsyfw1d%28v=vs.71%29.aspx

于 2012-05-23T12:56:17.543 に答える
1

インターフェイスを使用すると、関連のない複数のクラス階層にわたるメソッドの類似コレクションに基づいてポリモーフィズムを実現できます。これは、必ずしも相互に関連していないクラス全体のいずれかを使用するメソッドをコーディングできることを意味します。1 つのクラスに複数のインターフェイスを適用することで組み合わせることもできるため、そのクラスをさまざまな用途に使用できます。

対照的に、抽象メソッドでは、親クラスの直接の子孫のみを交換可能に使用できます。これは、複数の動作のコレクションを持つことができないため、制限される可能性があります (クラスは 1 つの親しか持てないため)。

于 2012-05-23T12:57:46.050 に答える