vb6.0教程:Vb 6 中的多态-vb教程来源: 发布时间:星期四, 2009年2月12日 浏览:183次 评论:0
ss=MsoNormal style=\"MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center\" align=center>Vb 6 中多态 prefix = o ns = \"urn:schemas-microsoft-com:office:office\" /> 最近在写个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可以处理frmProductstrA 了但是call showFrm(frmUser)会报错为什么就不用我多说了即便frmUser也有Public strA as String 变量 现在我希望showFrm即能处理 frmProduct strA 又能处理 frmUserstrA 是 VB 6 能让我们实现这个showFrm我首先想到是接口何为接口接口我个人认为接口是描述多个类共同特征类是对多个类共性描述在VB工程中新建个类 IfrmBase 如下: Public Property Get strA As String End Property Public Sub show ´显示子窗体 End Sub IfrmBase 呵呵看名字就知道为基础窗体接口凡是子窗体都要符合IfrmBase描述 然后再告诉系统frmProduct 和frmUser是符合IfrmBase描述类 在frmProductfrmUser 中加入 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( frmProduct) call showFrm( frmUser) 看到这大家应该明白showfrm是具有多态他要处理类在编译时是无法确定所以他是滞后联编我碰到过好多人多少对VB带有瞧不起眼光说vb实现不了多态我只想说vb是优秀开发工具 此外我还想再多说几句最近比较热工厂模式确showFrm是符合生活中处理模式它只对符合定特征物品做处理 铁匠只多带铁东西出里医生只对生病人处理打气筒只对球轮胎这中有气门芯内封闭物体打气如果做出来打气筒只能给皮球打气要我就仍了算了呵呵 本人第写作望各位多多支持! 0
相关文章读者评论发表评论 |