能否使用基类允许将多个派生类作为参数传递给VB6中的函数?

能否使用基类允许将多个派生类作为参数传递给VB6中的函数?,vb6,parameters,polymorphism,Vb6,Parameters,Polymorphism,我在谷歌上搜索过关于VB6支持多态性的文章,但我读过的所有文章都只提到可以使派生类继承派生类的属性和方法。我读过的三、四篇文章都没有提到VB6的多态性是否允许您将派生类作为基类类型的参数传递 如果您有一个名为Bunny的类,它是从名为Animal的类派生而来的,您能将Bunny类型的变量传递给以下函数吗 Public Sub Chase(thePerson as Person, theAnimal as Animal) Do While thePerson.position <&g

我在谷歌上搜索过关于VB6支持多态性的文章,但我读过的所有文章都只提到可以使派生类继承派生类的属性和方法。我读过的三、四篇文章都没有提到VB6的多态性是否允许您将派生类作为基类类型的参数传递

如果您有一个名为
Bunny
的类,它是从名为
Animal
的类派生而来的,您能将
Bunny
类型的变量传递给以下函数吗

Public Sub Chase(thePerson as Person, theAnimal as Animal)
    Do While thePerson.position <> theAnimal.position
        ...
    Loop
End Sub
公共子追逐(人作为人,动物作为动物)
当人定位动物的位置时,做
...
环
端接头

如果您的Bunny类继承自Animal,那么是的,您应该能够执行示例代码中所述的操作。

PS:我的睡觉时间到了,所以如果您在接下来的24小时内没有获得投票和最佳答案选择,请不要生气。VB6不支持通常意义上的派生类。它不支持实现继承。它支持接口继承,因此通过。这就是你要问的吗?您是如何创建派生类的?@MarkJ是的。从它的声音来看,它基本上与C++继承/多态性相同,除了(1)语法和(2)我猜想它就像java,在那里你只能继承一个类,但是你可以实现几个;如果我错了,请纠正我。我知道Java有一种类似的“扩展”/“实现”方法,在VB6中只有“实现”功能。您没有“扩展”/“派生”。-1,因为您无法在VB6中继承@MarkJ讨厌刻薄,但我不能很好地理解那篇文章。没有逗号,有些句子根本没有意义,而且结构也不好。此外,在阅读这篇文章时,我试图写一些具有多态性的东西,但失败了。剩下的是两个类,它们包含一个基类类型的对象,但它们不是从该基类派生的,因此我的两个派生类都不能传递给需要基类类型参数的函数。我将在新问题中发布代码。也许这是一个简单的解决办法。@MarkJ下面是我在MSDN文章中的尝试:;如果这就是VB6所能做到的,我会非常失望。“我肯定做错了什么吗?”Michael我提供了这个链接,作为VB6不直接支持继承的证据,因此我们在这里评论的这个答案是错误的。你会失望的。解决办法并不优雅。下面是一位资深VB6大师Rockford Lhotka的解决方案。