サブクラスが基本クラスを継承すると、基本クラスのすべてのインターフェースプロパティ、フィールド、メソッドが取得されます。ただし、サブクラスで定義された一意の属性とメソッドに、基本クラスから継承されたインターフェイスプロパティまたはメソッドと同じ名前が付けられる場合があります。VB.NETでは、サブクラスの基本クラスのインターフェース属性またはメソッドと同じ名前の属性とメソッドを使用できます。つまり、クラスでは、同じ名前の属性またはメソッドが異なるコードを使用して異なる関数を実行できます。クラスのポリモーフィズム。ポリモーフィズムは、サブクラスの柔軟性とプログラムの実用性を向上させます。
親クラスの属性またはメソッドと同じ名前でサブクラスの関数が異なる属性またはメソッドを使用するには、単純なメソッドは、元の基本クラスで定義された属性またはメソッドをオーバーライドすることです。サブクラスの関連コードに置き換えられたキーワードOverridsは、プロパティまたはメソッドをカバーするために使用されます。
モジュールModule1
Public Class人
员Protected MyWords As String
Public Overridable Property Words()As String
Get
Return MyWords
End Get
Set(ByVal value As String)
MyWords = value
End Set
End Property
パブリック
オーバーライド可能なSub Speak()MsgBox(MyWords、MsgBoxStyle.Critical、 "基类")
End Sub
End Class
パブリッククラスの営業
担当者が人事を継承
Public OverridesプロパティWords As String
Get
Return MyBase.Words
End Get
Set(ByVal value As String)
Select Case value
Case "Hello"、 "Thank You"、 "Goodbye"、 "Welcome Again"、 "Bye Bye"
MyWords = value
Caseそれ以外の
MsgBox(「文明的な言語を使用してください、前の単語はキャンセルされました」、MsgBoxStyle.OkOnly、「salesperson」)
End Select
End Set
End Property
End Class
Public Class Customerは
Staff
PublicオーバーライドSub Speak()
If MyWords = "" Then
MsgBox( "Hello、I want to buy something"、MsgBoxStyle.Information、 "Customer")
Words = "Thank you"
Else
MsgBox(MyWords、MsgBoxStyle.Information、 「お客様」)
End If
End Sub
End Class
Sub Main()
Dim Guest As New Customer
Dim Salesman As New
Salesman Salesman.Words = "Do What" 'Cancelled
Salesman.Words = "Hello"
Salesman.Speak()
Guest.Speak()
Guest.Speak()
Salesman.Words = "不用谢"
Salesman.Speak()
Guest.Words = "再见"
Guest.Speak()
Salesman.Words = "Welcome again"
Salesman.Speak()
Console.Read()
End Sub
エンドモジュール