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

vb.net类的封装,继承,多态,抽象之一

作者:闵涛 文章来源:闵涛的学习笔记 点击数:625 更新时间:2009/4/23 19:00:01

封装就是把各种方法和变量合并到一个类,用这个类代表某个对象为完成一定的任务所能保存的范围以及它能执行的操作。

继承就是根据现有类的方法和成员变量生成新的类的功能

多态就是对象随着程序执行而使其形式发生改变的能力。

抽象就是在暂时忽略对象的具体细节的功能。

在类中,构造器的方法使简化类的成员变量的初始化处理,当用继承从一个类构造另一个类的时候,会有两套构造器发生作用,即基类构造器和派生类构造器

例如:

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "  

#End Region
    Class base
        Public Sub New()
            MsgBox("base class running")
        End Sub
    End Class
    Class derived
        Inherits base
        Public Sub New()
            MsgBox("derived class running")
        End Sub
    End Class

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim s As New derived
    End Sub
End Class

如果基类构造器不需要参数,派生类执行的时候,vb.net自动调用基类构造器,但是如果基类构造器要求参数,那么派生类就必须显式调用基类构造器,同时向基类构造器传递相应的参数。

因为所有的类都使用方法new作为构造器名,所以派生类就不能简单的调用方法new,vb.net无法确定需要调用那个new方法,在派生类调用方法new时,必须在前面加上关键字mybase,如:mybase.new

在派生类构造器中,调用基类构造器的语句必须放在第一行,否则产生语法错误,如果不需要参数,可以省略,但为了提高代码的可读性,一般还是显式的调用mybase.new

继承和析构器方法

vb.net不能象调用基类构造器函数那样自动调用基类析构器,如下例:

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

#End Region
    Class a
        Public Sub New()
            MsgBox("class a new")
        End Sub
        Protected Overrides Sub finalize()
            MsgBox("class a finalize")
        End Sub
    End Class
    Class b
        Inherits a
        Public Sub New()
            MsgBox("class b new")
        End Sub
        Protected Overrides Sub finalize()
            MsgBox("class b finalize")
            MyBase.Finalize()
        End Sub
    End Class
    Class c
        Inherits b
        Public Sub New()
            MsgBox("class c new")
        End Sub
        Protected Overrides Sub finalize()
            MsgBox("class c finalize")
            MyBase.Finalize()
        End Sub
    End Class

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim s As New c
    End Sub
End Class

.net环境中的所有类都是从system.object类派生来的,在覆盖基类函数和子例程的时候必须把overrides放在方法的定义中,在派生类覆盖基类定义之前,基类也必须声明它的方法定义是可覆盖的,即在方法定义中放入关键字overrides,这种能够被派生类覆盖的方法叫虚拟函数。


没有相关教程
教程录入: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……
    咸宁网络警察报警平台