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

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

目次

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

インターフェース

1.インターフェースの宣言

アクセス修飾子 Interface インターフェース名 {
     抽象メソッド
}
  • インターフェースの宣言は、「Interface」を記述します。
  • 抽象メソッドを記述します。
  • インターフェースは他のインターフェースを継承できます。

2.インターフェースを実装するクラス

アクセス修飾子 class クラス名 Implements インターフェース名{
}
  • インターフェースを継承してクラスを定義することを「インターフェースを実装する」と言います。
  • インターフェースを実装するクラスには、「Implements」の後にインターフェース名を記述します。
  • インターフェースを実装したクラスはインターフェースで宣言されている抽象メソッドをオーバーライドする必要があります。
  • 1つのクラスに複数のインターフェースを実装することができます。その場合カンマで区切って記述します。
    →クラスの継承は、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とインターフェースのメソッド名が必要です。

 

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

1つのクラスに複数のインターフェースを実装するサンプルです。

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 クラスのメソッドのサンプル

△上に戻る