转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
Vb 6 中的多态         ★★★★

Vb 6 中的多态

作者:闵涛 文章来源:闵涛的学习笔记 点击数:999 更新时间:2009/4/23 18:59:17

Vb 6 中的多态

最近在写一个MDI窗体的程序,每调用一个子窗体时都要对其做一些操作。于是我就用一个SUB 来做显示子窗体的操作

       Private Sub showFrm(ByRef tFrm As Form)

       {代码。。。。。。}

       tFrm.show

End Sub

 

假设有两个子窗体 frmProduct产品列表,和frmUser用户列表,那么要在显示这两个窗体的地方就用

       call showFrm(frmProduct)

       call showFrm(frmUser)

frmProduct 是系统自动生成的Form类的对象(实体)。

当然系统中还有一个frmProduct类。他们两个只是名字一样。

这样在显示子窗体的时候调用的所有相关操作都放在showFrm中,在{代码。。。。。}中可以对tFrm的图标啊,前景色,大小啊什么的做想要的操作,以后修改起来也方便。我始终相信把实现相同功能的代码放不同的地方,或不用一个函数,或类什么的封装起来,以后会给自己带来更多的麻烦。

但是如果在showFrm中我要对frmProduct 中的一个变量 Public  strA as String操作,那么现在的showFrm 是做不到的。因为他只处理Form类,而strA是属于frmProduct类的。于是把showFrm改动一下

       Private Sub showFrm(ByRef tFrm As frmProduct)

       {代码。。。。。。}

       tFrm.show

End Sub

这样showFrm可以处理frmProduct的strA 了。但是call showFrm(frmUser)会报错,为什么就不用我多说了,即便frmUser也有Public  strA as String 变量。

现在我希望showFrm即能处理 frmProduct 的 strA 又能处理 frmUser的strA。

是的 VB 6 能让我们实现这个showFrm。我首先想到的是接口,何为接口,接口,我个人认为接口是描述多个类的共同特征的类,是对多个类共性的描述。在VB工程中新建一个类 IfrmBase 如下:

      

Public Property Get strA() As String

 

End Property

 

 

Public Sub show() ''''显示子窗体

 

End Sub

 

IfrmBase 呵呵一看名字就知道为基础窗体接口,凡是子窗体都要符合IfrmBase的描述。

 

 

然后再告诉系统,frmProduct 和frmUser是符合IfrmBase描述的类。

 

在frmProduct,frmUser 中加入

 

Implements IfrmBase

 

''''--------------------------

''''接口实现部分

''''---------------------------

Private Property Get IfrmBase_staA () As String

    IfrmBase_staA = Me.staA

End Property

Public Sub IfrmBase_show()

    Me.show

End Sub

 

Private Sub showFrm(ByRef tFrm As IfrmBase)

 {代码。。。。。}

 

 tFrm.show

 

End Sub

 

于是在调用子窗体的地方就可以写上代码

call showFrm(new frmProduct)

call showFrm(new frmUser)

 

看到这大家应该明白,showfrm()是具有多态的。他要处理的类在编译时是无法确定的,所以他是滞后联编的。我碰到过好多人多少对VB带有瞧不起的眼光,说vb实现不了多态。我只想说vb是优秀的开发工具。

此外我还想再多说几句。最近比较热的工厂模式。的确showFrm是符合生活中的处理模式的,它只对符合一定特征的物品做处理。

铁匠只多带铁的东西的出里。医生只对生病的人处理。打气筒只对球,轮胎,这中有气门芯,内封闭的物体打气。如果做出来的打气筒只能给皮球打气,要我就仍了算了呵呵。

 

 

本人第一写作,望各位多多支持!


[VB.NET程序]GSM短信模块库函数,可以用VB,VC,调用简单实用  [办公软件]PowerPoint做交互课件之弃用VBA
[办公软件]VBA获取U盘、主板、CPU序列号和网卡MAC地址  [办公软件]VBA设置文件属性及加密源代码示例
[办公软件]VBA中初始化ADO连接的几种方法  [网络安全]“VB破坏者变种N”病毒摘要
[Web开发]ASP.NET上传文件到数据库VB版  [办公软件]在Excel中利用VBA实现多表单元格数据的读取与赋值…
[办公软件]使用Vba读取已关闭的Excel工作薄数据到当前工作表…  [办公软件]Excel编程基础之VBA文件操作详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台