VB.NETのオーバーロードのサンプルです。
目次
説明 | オーバーロードとは |
サンプル | メソッドのオーバーロード |
コンストラクタのオーバーロード |
オーバーロードとは
- 1つのクラスの中で、メソッド名またはコンストラクタ名が同じで引数の型や数が異なるものです。
- 渡す引数によって自動的に引数にあったメソッドまたはコンストラクタが実行されます。
- メソッド名、引数の型、引数の数の組み合わせをシグネチャ(signature)と呼びます。
→メソッド名ではなくシグネチャで判別されます。 - 継承の機能で似た名前のオーバーライドがありますがそれとは別です。オーバーロードと継承は関係ありません。
VB.NET オーバーライドのサンプル
メソッドのオーバーロード
メソッドのオーバーロードのサンプルです。
Public Class Class1
Public Function getCount1(a As Integer)
Return CStr(a) + "回目"
End Function
Public Function getCount1(a As Integer, b As String)
Return CStr(a) + "回目" + b
End Function
End Class
Module Module1
Sub Main()
Dim c1 As New Class1
Console.WriteLine(c1.getCount1(2)) '2回目と出力される
Console.WriteLine(c1.getCount1(2, "です")) '2回目ですと出力される
End Sub
End Module
3,7行目は同じメソッド名です。
3行目の引数はIntegerで、7行目の引数は、IntegerとStringです。
15行目の引数は数値1つです。3行目のメソッドが実行されます。
16行目の引数は数値と文字列の2つです。7行目のメソッドが実行されます。
渡す引数によって自動的に引数にあったメソッドが実行されます。
コンストラクタのオーバーロード
コンストラクタのオーバーロードのサンプルです。
Public Class Class1
Dim name1 As String
Sub New()
name1 = "白"
End Sub
Sub New(a As String)
name1 = a
End Sub
Public Function getColor()
Return name1
End Function
End Class
Module Module1
Sub Main()
Dim c1 As New Class1()
Console.WriteLine(c1.getColor()) '白と出力される
Dim c2 As New Class1("赤")
Console.WriteLine(c2.getColor()) '赤と出力される
End Sub
End Module
3,6行目はコンストラクタです。
3行目の引数はなしで、6行目の引数はStringです。
18行目の引数はありません。3行目のコンストラクタが実行されます。
21行目の引数は文字列1つです。6行目のコンストラクタが実行されます。
渡す引数によって自動的に引数にあったコンストラクタが実行されます。
関連の記事
VB.NET入門 クラスの仕組みとサンプル
VB.NET クラスの継承の仕組みとサンプル
VB.NET コンストラクタのサンプル
VB.NET メソッドのサンプル(値渡し/参照渡し他)
VB.NET オーバーライドのサンプル