例025ポリモーフィズム

       サブクラスが基本クラスを継承すると、基本クラスのすべてのインターフェースプロパティ、フィールド、メソッドが取得されます。ただし、サブクラスで定義された一意の属性とメソッドに、基本クラスから継承されたインターフェイスプロパティまたはメソッドと同じ名前が付けられる場合があります。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

エンドモジュール
 

公開された146元の記事 ウォンの賞賛0 ビュー2753

おすすめ

転載: blog.csdn.net/ngbshzhn/article/details/105544679
おすすめ