我有一個項目,主要有兩個對象,都從一個基地繼承。就像這樣:使用繼承基類對象時傳遞基類對象類型
Public Class Vehicle
Property Model As String
Property Make As String
End Class
Public Class Truck
Inherits Vehicle
Property IsFlatbed As Boolean
End Class
Public Class Car
Inherits Vehicle
Property LeatherSeats As Boolean
End Class
足夠簡單,是嗎?因爲我不知道用戶是否會選擇汽車或卡車,我想要做的只是傳遞Vehicle
。
所以,這樣的事情:
Public v As Vehicle
Sub WhichVehicle()
Select Case cmbVehicle.SelectedItem
Case Truck
v = New Truck
Case Car
v = New Car
End Select
SetFlat (v)
End Sub
這一切工作,但現在我只是想通過v
周圍,並使用它的屬性。像:
Sub SetFlat (myVehicle As Vehicle)
myVehicle.IsFlatbed = True
End Sub
上述功能不起作用,因爲myVehicle
是Vehicle
,而不是一個Truck
。
有沒有辦法繞過Vehicle
類型並讓IDE知道使用哪種類型?或者我完全錯過了一個更好的方法來做到這一點?
所有其他人都有很好的建議,但這是最符合我需求的。謝謝! – Stan 2010-10-17 19:21:10
很高興爲您服務,並感謝您接受我的回答。正如你可能想象的那樣,這只是System的冰山一角。反思是關心的;如果您想更深入地探索這條大道,請隨時聯繫我。 – smirkingman 2010-10-17 21:16:19