インターフェイスとポリモーフィズム

 インターフェイスはどのように利用できるのでしょうか?インターフェイスは実装したクラスからはスーパークラスのように利用できます。そのため、複数のクラスでインターフェイスを実装することで利用価値が出てきます。つまり、1つのクラスにインターフェイスを実装してもあまり意味がありません。

 ミルクコーヒーかミルクティーを注ぐプログラムを作成して、確認してみましょう。

○ プロジェクト

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

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

サンプルダウンロード

○ フォームデザイン

 次のようにフォームにコントロールを配置してください。

コントロールの配置例
コントロールの配置例

○ プログラム

 次のようにインタフェースを定義してください。(VB2010 Expressの場合は、クラスを追加して、書き換えてください。)

IMilk.vb

  1. Public Interface IMilk
  2.  Sub milk()
  3. End Interface

○ プログラム

 ミルクコーヒーを表すクラスを作成してください。

MilkCoffee.vb

  1. Public Class MilkCoffee
  2.  Implements IMilk
  3.  Sub coffee()
  4.   Debug.WriteLine("コーヒー")
  5.  End Sub
  6.  Sub milk() Implements IMilk.milk
  7.   Debug.Write("ミルク")
  8.   Me.coffee()
  9.  End Sub
  10. End Class

○ プログラム

 ミルクティーを表すクラスを作成してください。

MilkTea.vb

  1. Public Class MilkTea
  2.  Implements IMilk
  3.  Sub tea()
  4.   Debug.WriteLine("ティー")
  5.  End Sub
  6.  Sub milk() Implements IMilk.milk
  7.   Debug.Write("ミルク")
  8.   Me.tea()
  9.  End Sub
  10. End Class

○ プログラム

 Form1.vbに次のプログラムを記述してください。Button1_Clickを共有します。

Form1.vb

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
  2.  Dim drink As IMilk
  3.  If sender.text = "コーヒー" Then
  4.   drink = New MilkCoffee()
  5.  Else
  6.   drink = New MilkTea()
  7.  End If
  8.  drink.milk()
  9. End Sub

 クリックされたボタンに応じてdrinkオブジェクトのミルクメソッドで表示される飲み物が変わります。

実行イメージ
実行イメージ

前へ   次へ