0

重複の可能性:
Java または C# で多重継承が許可されないのはなぜですか?

質問: C# は多重継承をサポートしていますか?

回答:はい、インターフェースを使用します。

今私の質問:インターフェイスを継承する場合は、それを実装する必要があります。そのため、独自のコードを作成してから、インターフェースを継承することによる再利用性である継承のコアコンセプトをどのように使用しているかを説明します

したがって、インターフェイスを介した多重継承役に立たないようです。私が間違っている場合、インターフェイスを介した多重継承はどのように役立ちますか?

4

2 に答える 2

5

あなたは2つの異なる概念を混同しています:

  • クラス継承。クラスは基本クラスのメンバーと動作を継承します。基本は 1 つしか持てません。C# は多重継承をサポートしていません。
  • これは、クラスによって満たされるコントラクトを表現する方法です。インターフェースはいくつでも実装できます。

したがって、インターフェイスを実装することで動作を継承することを期待している場合、もちろんそれは役に立たないように思えます...インターフェイスを実装することは、他の人に「ねえ、私は(何か)を行う方法を知っています」と伝える方法にすぎません。その「何か」の実装を自動的に提供するわけではなく、その部分はあなた次第です。

于 2012-09-29T20:02:18.733 に答える
0

インターフェースの実装とは、関数とメソッドの特定の「コントラクト」に対して実行することが保証されているオブジェクトを作成することであり、そのインターフェースを実装するオブジェクトを期待する任意のメソッドで使用できるようにします。

Sort 関数の理論的な DavidW.IComparer インターフェイスを考えてみましょう。一般的な並べ替えは、2 つのオブジェクト間の比較を提供する DavidW.IComparer インターフェイスをサポートするオブジェクトを期待できます。DavidW.IComparer の実装は、並べ替えられる 2 つのオブジェクトが消費者の問題ドメインでどのように関連するかを定義する特定の実装を提供します。

インターフェイスはコントラクトを定義し、実装者は文字通りの配管を提供します。そこに価値があります。そして、実際には、インターフェースを「継承」しません....

于 2012-09-29T19:52:32.200 に答える