何時該使用抽象方法?
'抽象類別與抽象方法
'包含抽象方法的類別必須宣告為抽象類別
Public MustInherit Class AbstractClass
'當您定義類別時,可以僅宣告方法名稱而不實作當中的邏輯,這樣的方法稱之為「抽象方法」
'定義抽象方法
Public MustOverride Function Cup(ByRef shape As String) As String
''一般的方法
Public Function Teapot(ByRef shape As String) As String
Return "茶壺的形狀是" & shape & "形"
End Function
End Class
Public Class TestAbstract1
'繼承AbstractClass這個抽象類別
Inherits AbstractClass
'強制必須實作Cup
Public Overrides Function Cup(ByRef shape As String) As String
Return "茶杯的形狀是" & shape & "形"
End Function
End Class
Public Class TestAbstract2
'繼承AbstractClass這個抽象類別
Inherits AbstractClass
'強制必須實作Cup
Public Overrides Function Cup(ByRef shape As String) As String
Return "咖啡杯的形狀是" & shape & "形"
End Function
End Class
Public Class TestClass
Public Sub Test()
Dim t1 As String
Dim t2 As String
Dim Sh As New TestAbstract1
t1 = Sh.Cup("圓")
t2 = Sh.Teapot("方")
'如此會印出t1=茶杯的形狀是圓形,t2=茶壺的形狀是方形
Dim Sh2 As New TestAbstract2
t1 = Sh2.Cup("圓")
t2 = Sh2.Teapot("方")
'如此會印出t1=咖啡杯的形狀是圓形,t2=茶壺的形狀是方形
End Sub
End Class
何時該使用抽象方法? 當你要求實作一個方法,但是方法的內容未定 即在父類別時先給此方法做一個規範 再由繼承的Class去實作 如此範例 我要做一個杯子Cup 但是我不確定是哪種杯子 我在父類別規範有個叫Cup的方法 讓繼承的子類別去作出茶杯或咖啡杯