2012-07-16 37 views
0

我已經搜索了關於VB6對多態性支持的文章,但是我所閱讀的所有文章僅僅提到可以使派生類繼承屬性和派生類中的方法。我讀過的三篇或四篇文章中沒有提到VB6的多態性是否允許您將派生類作爲基類類型的參數傳遞。您是否可以使用基類來將多個派生類作爲參數傳遞給VB6中的函數?

如果您有一個名爲Bunny的類,它是從名爲Animal的類派生的,您是否可以將類型爲Bunny的變量傳遞給以下函數?

Public Sub Chase(thePerson as Person, theAnimal as Animal) 
    Do While thePerson.position <> theAnimal.position 
     ... 
    Loop 
End Sub 
+0

PS:睡覺時間,所以如果你沒有得到upvotes和另一個24小時的最佳答案選擇,請不要生氣。 – TimFoolery 2012-07-16 06:57:57

+0

VB6不支持通常意義上的派生類。它不支持實現繼承。它通過['Implements'語句](http://語言)支持接口繼承,因此支持[polymporphism](http://msdn.microsoft.com/zh-cn/library/aa242069(v = vs.60).aspx) msdn.microsoft.com/en-us/library/aa243384(v=vs.60).aspx)。這是你問的嗎?你如何創建你的派生類? – MarkJ 2012-07-16 16:00:03

+0

@MarkJ是的。從它的聲音來看,它基本上與C++繼承/多態相同,除了(1)語法和(2)我猜它就像Java,只能從一個類繼承,但可以實現多個;如我錯了請糾正我。我知道Java有一個類似的「擴展」/「實現」方法。 – TimFoolery 2012-07-16 20:03:04

回答

0

如果你的兔子類繼承動物然後是你應該能夠做你已經在你的示例代碼中陳述。

+0

-1因爲你**不能在VB6中繼承**。 http://msdn.microsoft.com/en-us/library/aa260821(v=vs.60).aspx – MarkJ 2012-07-16 20:36:21

+0

@MarkJ恨意,但我不能很好地跟隨那篇文章。沒有逗號,有些句子根本沒有意義,而且結構也不好。此外,在閱讀文章的同時,我試圖寫出一些以多態爲特徵的東西,但它失敗了。我剩下的是兩個包含基類類型對象的類,但它們不是從該基類派生的,所以我的派生類都不能傳遞給需要基類類型參數的函數。我將在新的問題中發佈代碼。也許這是一個簡單的修復。 – TimFoolery 2012-07-17 03:05:33

+0

@MarkJ這裏是我的隨着MSDN文章下面的嘗試:http://stackoverflow.com/questions/11515724/attempting-to-learn-polymorphism-etc-in-vb6-but-my-code-doesnt-do-我是什麼;如果這是VB6的全部能力,我很失望。當然,我做錯了什麼? – TimFoolery 2012-07-17 03:47:24

相關問題