ポリモーフィズムとは

 ポリモーフィズムは多態性、多様性などとも呼ばれます。次のような特徴があります。

・ スーパークラスの型を持った変数で、サブクラスを受けることができる。
・ スーパークラスの型で受け取った場合でも、サブクラスのメソッドが実行される。

 VB2010は、クラスを作成すると暗黙のうちにObjectクラスのサブクラスとなります。つまり、Objectクラスのメソッドをどのクラスでも使用することができるわけです。どのようなメンバで構成されているかリファレンスで確認してみてください。

 次のサンプルでは、車とバスのクラスのオブジェクトをオブジェクト型の変数に代入して、動作を確認をします。

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 PolymorphismTest

サンプルダウンロード

○ 作成の準備

 「OverrideTest」プロジェクトより、Car.csとBus.csをコピーしてプロジェクトに追加してください。

○ フォームデザイン

 フォームにボタンを1つ配置します。

○ プログラム

 次のようにイベントプロシージャの記述をしてください。

Form1.vb

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  Dim obj As Car
  3.  obj = New Car(40)
  4.  MessageBox.Show(obj.Gas)
  5.  obj = New Bus(60)
  6.  MessageBox.Show(obj.Gas)
  7. End Sub

 Car型の変数にCarのインスタンスを代入すると、Carに関する情報が出てきます。Busのインスタンスを代入すると、Busに関する情報が出てきます。サブクラスのフィールドが参照されているわけです。また、Busのインスタンスを代入した場合、利用できるメンバはスーパークラスで定義されたメンバのみになります。この特性を利用してポリモーフィズムを実現させます。

前へ   次へ