2011年8月28日日曜日

。NET:。NETプラットフォームの下では多重継承の問題を解決する

。NETプラットフォームでは、多重継承をサポートしていません。多重継承とマルチレベルの継承を混同しないでください。多重継承と我々は、同時に2つのクラスから継承するサブクラスを持つことができます。

それでは、例としては、クラスのお客様と別のクラスのベンダーを持つアプリケーションがあるとします。 、あるCustomerVendorクラスにこの2つのクラスを組み合わせるしたい場合には、単に下の図のように顧客とベンダーの組み合わせになります。

http://www.vbprofs.com/images/Article画像/ VBNETinheritance.gif:ダイアグラムを表示するには、新しいブラウザwindorに次のリンクをコピーしてください

上の図はCustomerVendorクラスはそれらのクラスの両方から継承する方法を参照してください。

多重継承は複雑であり、危険なことができます。コー​​ドの再利用の利点は、複雑に優先して選択する次第です。

多重継承は、VB.NETまたは。Netのプラットフォームでサポートされていません。代わりに多重継承を我々は、多重継承と同様の効果を達成するために複数のインターフェイスを使用することができます。

VB.NETでのすべてのオブジェクトは、Publicキーワードを使用して宣言されたプロパティ、イベント、メソッドまたはメンバー変数で構成されているプラ​​イマリまたはネイティブインタフェースを持ちます。オブジェクトは、実装のキーワードを使用しても、セカンダリインターフェイスを実装することができます。

時には私たちはさまざまな方法でオブジェクトと対話できるように、複数のインタフェースを持つオブジェクトに便利です。継承は、基底クラスの特殊なケースであるサブクラスを作成することができます。

時には我々は類似していないオブジェクトのグループを持っているが、我々はそれらに同じ方法を扱うようにしたい。我々は、彼らが異なっていても、それらが同じであるかのようにすべてのオブジェクトが動作するようにしたい。

我々は、製品、請求書などを顧客のようなアプリケーションのいくつかの異なるオブジェクトを、持つことができる各オブジェクトには、個々のオブジェクトに適切なデフォルトのインタフェースを持つことになります、そして、それらのそれぞれは異なるクラスです。自然な継承は、これらのクラス間で暗黙的にされていません。

それでは、例としては、オブジェクトの種類ごとに文書を印刷するとします。この場合、我々はそれらの印刷可能なオブジェクトとしてすべての行為と思っているのですが。これを達成するために我々は、印刷されたドキュメントを生成できるような汎用的なインタフェースを定義することができます。共通のインターフェイスを実装することで我々は、印刷されたドキュメントを実装する任意のオブジェクトを受け入れるルーチンを記述することができます。

結論として、VB.NETで複数のインターフェイスを実装することによって、我々は多重継承と同様の効果を得ることができます。

0 件のコメント:

コメントを投稿