oop – VB6中的多态行为
发布时间:2020-12-17 07:26:51 所属栏目:百科 来源:网络整理
导读:我最近注意到VB6中的CallByName关键字. 由于这需要一个对象,过程名称,“调用类型”和参数数组,这可以用来“伪造”某些类型的多态行为吗? 我可以创建2个类,A类和B类,每个类都使用相同的方法Foo,并执行: Dim list As New CollectionDim instanceA As New Cla
我最近注意到VB6中的CallByName关键字.
由于这需要一个对象,过程名称,“调用类型”和参数数组,这可以用来“伪造”某些类型的多态行为吗? 我可以创建2个类,A类和B类,每个类都使用相同的方法Foo,并执行: Dim list As New Collection Dim instanceA As New ClassA Dim instanceB As New ClassB Dim current As Object Call list.Add(instanceA) Call list.Add(instanceB) For Each current in list Call CallByName(current,"methodName",vbMethod) Next 有人这样做过吗?问题?可怕的想法或天才的想法?启示?意想不到的后果? 解决方法
为什么假多态? VB6以接口的形式具有真正的多态性:
' Interface1.cls ' Sub Foo() End Sub ' --------------------------------------------- ' ' Class1.cls ' Implements Interface1 Private Sub Interface1_Foo() ? "Hello from class 1" End Sub ' --------------------------------------------- ' ' Class2.cls ' Implements Interface1 Private Sub Interface1_Foo() ? "Hello from class 2" End Sub ' --------------------------------------------- ' ' Module1.mod ' Dim x As Interface1 Set x = New Class1 Call x.Foo() Set x = New Class2 Call x.Foo() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |