VB.NET 只允許類別的單一繼承,即衍生類別只能有一個基底類別(父類別),雖不能多重繼承但類別可以實作多重介面。


Public Class Customer
    ....
    Public Overridable Function CalcDiscount ( ByVal dAmt As Decimal) As Decimal
        Return dAmt
    End Function
End Class
    Overidable 修飾詞:表任何衍生類別都可以複寫此方法並定義自己的實作。
    MustOveride 關鍵字:表任何衍生類別都必須複寫此方法。

Public Class GovCustomer : Inherits Customer
    Public Sub New ()
        MyBase.New ()
    End Sub

    Public Overrides Function CalcDiscount ( ByVal dAmt As Decimal) As Decimal
        Dim newAmt As Decimal
        newAmt = dAmt * CDec(0.9)
        Return newAmt
    End Function
End Class
     Overides 修飾詞:表任複寫定義於基底類別的方法。

建立衍生類別的執行個體
Private myCustomer As GovCustomer
myCustomer = New GovCustomer
myCustomer 物件可以
    可存取基底類別 Customer 的任何公用屬性與方法
    可存取衍生類別 GovCustomer 的任何屬性與方法
    可存取衍生類別 GovCustomer 所覆寫的任何屬性與方法

Private myCustomer As Customer
myCustomer = New GovCustomer
此作法可以允許任何型別的 Customer 物件被定義並能善用多型 Polymorphism
myCustomer 物件可以
    可存取基底類別 Customer 的任何公用屬性與方法
    不可存取衍生類別 GovCustomer 的任何屬性與方法
    可存取衍生類別 GovCustomer 所覆寫的任何屬性與方法
arrow
arrow
    全站熱搜

    tsuozoe 發表在 痞客邦 留言(0) 人氣()