メソッドのオーバーライド(override)という機能。簡単に言えば子クラスで親クラスのメソッドを「上書き」する機能。
Module Module1
Sub Main()
Dim c As New Class2()
c.Output()
End Sub
End Module
Class Class1
Protected S As String = "こんにちは"
Public Overridable Sub Output()
Console.WriteLine(S)
End Sub
End Class
Class Class2
Inherits Class1
Public Overrides Sub Output()
Console.Write(S)
Console.WriteLine(S)
End Sub
End Class
Class2のインスタンスcを作り、そのOutputメソッドを呼び出す。Class2クラスのOutputメソッドが呼び出される。ここでは「こんにちは こんにちは」と表示される
Class2の親であるClass1にもOutputメソッドがあるがOverridableと書いてオーバーライドを許可している。Class2クラスではOverridesと書いてオーバーライドすることを示している。
Class2の外部からClass1のOutputを呼び出すことはできない。
でも、Class2の内部からであれば、
MyBase.Output()
と記述することによって、親クラスのOutputメソッドを呼び出せる。
0 件のコメント:
コメントを投稿