Public Class MyBase
'父类定义一个sayHello()方法,无实现代码。这里起到了java里interface的作用
Public Function sayHello()
End Function
End Class
Public Class SubClass1 As MyBase '继承MyBase
Public Function sayHello() '实现sayHello
Msgbox "hello subclass1"
End Function
End Class
Public Class SubClass2 As MyBase '继承MyBase
Public Function sayHello()
Msgbox "hello subclass2" '实现sayHello
End Function
End Class
'客户代码
dim obj1 as MyBase '声明类型为MyBase的对象
set obj1=new SubClass1() '创建SubClass1的实例
dim obj2 as MyBase '声明类型为MyBase的对象
set obj2=new SubClass2() '创建SubClass1的实例
'调用sayHelloProxy
call sayHelloProxy(obj1)
call sayHelloProxy(obj2)
public function sayHelloProxy(obj as MyBase)
'这也是多态的体现,
执行obj的sayHello(),这里不关心obj的实例到底是SubClass1还是SubClass2。
'这里针对抽象的MyBase编程而不是针对具体类编程。
call obj.sayHello()
end function