仮想メゾッド、抽象メソッド、クラス
■仮想メソッド
・実装を持つが、子クラスでOverride可能なメソッド。
Public Overridable Sub TestMethod()
Console.WriteLine("仮想メソッド")
End Sub
Public Overridable Property TestProperty As String = "仮想property"
■抽象メソッド
・実装を持たない、子クラスでOverrideが必須なメソッド
Public MustOverride Sub TestMethod()
Public MustOverride Property PropertyA As String
(*)抽象メソッドは、抽象クラス内に定義しなければならない。
(*)仮想メソッドも抽象メソッドも、Shared、PrivateはNG!
■抽象クラス
・抽象メソッドをもつクラス。
・実装のあるメソッドも持つことができる。
Public MustInherit Class TestClass
' 抽象メンバ:MustOverride修飾子を付ける
Public MustOverride Sub TestMethod()
Friend MustOverride Property TestProperty As String
' 実装のあるメソッドも持てる
Public Sub TestMethod()
Console.WriteLine("実装のあるメソッド")
End Sub
End Class