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 所覆寫的任何屬性與方法
全站熱搜
留言列表