回顾vb多态

由于vb是基于对象没有完全面向对象所以vb也就没有继承。但是vb可以实现向C++和Java一样的继承的功能(个人理解),所以vb也算是有继承了。面向对象的编程理念是抽象——封装——继承——多态。我的理解是vb的的抽象——类;封装——在类中写过程;继承——复制过程的代码;多态——不同的结果。
下面介绍下vb中多态实现的具体步骤:
1、定义接口类 。
接口类中只是写事物的功能,具体实现类的代码不写。
例如:我们定义一个接口类Fruit类,它的功能是保鲜。
public sub save()
end sub

2、定义实现类
实现类就是使用接口类实现某些功能
例如:我们定义两个实现类,Apple类和Grape类。
Grape类代码
Implements Fruit '声明要是使用Fruit这个接口
public sub Fruit_save()
msgBox "apple save"
end if
Apple 类代码
Implements Fruit '声明要是使用Fruit这个接口
public sub Fruit_save()
msgBox "grape save"
end if
接下来就是在窗体中写代码
private sub mysub(afruit as Fruit) '定义过程
afruit.save
end sub
private sub command1_clike()
dim aApple as Apple
set aApple = new Apple
call mysub(aApple)
set aApple as nothing
dim agrape as Grage
set agrape = new Grage
call mysub(agrape)
set agrape as nothing
end sub

然后运行就可以看到msgBox 分别弹出 apple save 和 apple save。
运用相同的变量afruit 传入不同的参数实现不同的结果,这便实现了多态的功能

总结:这和我们在模块中写一个function过程有点像,都是传入参数返回结果。但多态可定由他独特的好处, 具体好处我也不知道。说实话感觉到这里对面向对象 的理念理解的还不是太清,不过没关系因为我们 还会有第二遍第三遍的学习。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...