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 的頭像
    tsuozoe

    隨便寫寫的新天地

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