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 メソッドのサンプル(値渡し/参照渡し他)