VB.NET インターフェースのサンプル(Interface )

VB.NETのインターフェースのサンプルです。

目次

説明 インターフェースとは
サンプル 複数のインターフェースを実装する
  インターフェースがインターフェースを継承する

インターフェースとは

アクセス修飾子 Interface インターフェース名 {
     抽象メソッド
}
  • インターフェースの宣言は、「Interface」を記述します。
  • 抽象メソッドは、継承先でメソッドのオーバーライドを強制します。
  • 抽象メソッドは、メソッドの定義はしますが、処理内容は記述しません。
    →処理の概要を表すといえます。
    →処理内容は、抽象クラスを継承したクラスで記述します。
  • インターフェースは他のインターフェースを継承できます。

インターフェースを実装する書き方

アクセス修飾子 class クラス名 Implements インターフェース名{
}
  • インターフェースの前に「Implements」を付けます。
  • インターフェースを継承してクラスを定義することを「インターフェースを実装する」と言います。
  • 1つのクラスに複数のインターフェースを実装することができます。その場合カンマで区切って記述します。

インターフェースのサンプルです。

Public Interface ItestA
	Function getColor()
End Interface

Public Class Class1
	Implements ItestA

	Public Function getColor() Implements ItestA.getColor
		Return "red"
	End Function

End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1()
		Console.WriteLine(c1.getColor()) 'redと出力される
	End Sub
End Module

1~3行目は、インターフェースです。
2行目は、抽象メソッドです。
6行目は、1行目のインターフェースを実装しています。
8行目は、2行目の抽象メソッドをオーバーライドしています。
メソッドの後にもImplementsとインターフェースのメソッド名が必要です。

複数のインターフェースを実装する

クラスは、複数のインターフェースを実装できます。

Public Interface ItestA
	Function getColor1()
End Interface

Public Interface ItestB
	Function getColor2()
End Interface

Public Class Class1
	Implements ItestA, ItestB

	Public Function getColor1() Implements ItestA.getColor1
		Return "red"
	End Function
	Public Function getColor2() Implements ItestB.getColor2
		Return "blue"
	End Function
End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1()
		Console.WriteLine(c1.getColor1()) 'redと出力される
		Console.WriteLine(c1.getColor2()) 'blueと出力される
	End Sub
End Module

10行目のクラスは、1行目と5行目のインターフェースを実装しています。
12,15行目は、インターフェースのそれぞれのメソッドを実装しています。

インターフェースがインターフェースを継承する

インターフェースは、他のインターフェースを継承できます。

Public Interface ItestA
	Function getColor1()
End Interface

Public Interface ItestB
	Inherits ItestA
	Function getColor2()
End Interface

Public Class Class1
	Implements ItestB

	Public Function getColor1() Implements ItestA.getColor1
		Return "red"
	End Function
	Public Function getColor2() Implements ItestB.getColor2
		Return "blue"
	End Function
End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1()
		Console.WriteLine(c1.getColor1()) 'redと出力される
		Console.WriteLine(c1.getColor2()) 'blueと出力される
	End Sub
End Module

6行目は、インターフェースがインターフェースを継承しています。
13,16行目は、インターフェースのそれぞれのメソッドを実装しています。

関連の記事

VB.NET入門 クラスの仕組みとサンプル
VB.NET クラスの継承の仕組みとサンプル
VB.NET コンストラクタのサンプル
VB.NET メソッドのサンプル(値渡し/参照渡し他)

△上に戻る