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

Microsoft .NET 中的基类继承

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1970 更新时间:2009/4/23 16:39:33

使用抽象类的原因有多种。对于强制子类设计人员实现应用程序通常所需的所有接口,抽象类非常有用。您可以在不破坏客户端应用程序的情况下向子类添加新方法,这是使用接口所无法实现的;可以在基类中提供许多默认实现方法,从而减少子类需要完成的工作量。

接口继承

创建抽象类时,请使用关键字 Interface 而不是 Class。为接口命名,然后定义需要子类实现的所有属性和方法。这是因为基类中没有可以实现的属性和方法,它只包含一般数据,而不包含方法。您所创建的只是一个合约,它规定所有使用此接口的子类都必须遵循一定的规则。

  1. 现在,请在已创建的项目中添加一个新类。
  2. 从 Visual Studio 菜单中,单击 Project(项目),然后单击 Add Class(添加类)。
  3. 在类中添加以下代码:
    Interface Person
        Property FirstName() As String
        Property LastName() As String
        
        Sub Print()
        Sub Talk()
    End Interface

    您会发现,您定义属性和子过程的方法与您通常定义这些属性和过程的方法一样。唯一的差别在于,您没有为它们编写任何代码。现在来看看如何在类定义中使用此接口。

  4. 在上一步骤创建的类文件中添加以下代码:
    Public Class Employee
        Implements Person
        
        Private mstrFirstName As String
        Private mstrLastName As String
        
        Property FirstName() As String _
         Implements Person.FirstName
            Get
                Return mstrFirstName
            End Get
            Set
                mstrFirstName = Value
            End Set
        End Property
        
        Property LastName() As String _
         Implements Person.LastName
            Get
                Return mstrLastName
            End Get
            Set
                mstrLastName = Value
            End Set
        End Property
        
        Sub Print() Implements Person.Print
            '''' 在此处添加一些代码        
        End Sub
    
        Sub Talk() Implements Person.Talk
            '''' 在此处添加一些代码
        End Sub
    End Class

在 Employee 类定义之后的第一行是 Implements Person。此关键字表示您要遵守 Person 接口中定义的合约。现在您可以定义该合约中的所有属性和方法。在每一个 Property 语句后面,都必须包含 Implements 关键字,并且必须指定接口的名称和您正在使用的方法/属性的名称(两个名称之间有一个点 [.])。Visual Basic .NET 将跟踪每一个接口,在所有接口创建完毕之前,您不能编译应用程序。

如果要运行代码,则需要创建相应的子过程,因为在上面的示例中这些子过程被保留为空。创建所有子过程后,您就可以与您通常创建并使用任何其他对象一样,声明并使用新的 Employee 对象了。

选择要使用的继承类型

有时候很难决定到底是使用实现继承还是使用接口继承,很多情况下,可能两种继承都会用到,但都只涉及一小部分。例如,您可能需要在 Line 类中添加必须被子类覆盖的方法定义,在过程定义中使用 MustOverride 关键字即可实现此操作。

Public MustOverride Sub Init()

将此定义添加到类中以后,其作用类似于一个接口。在子类中,必须定义 Init 方法,并且该方法必须使用 Overrides 关键字。以下是如何定义 Init 方法的示例:

Public Overrides Sub Init()
   mstrDelim = " "
   mstrLine = "测试行"
End Sub

同样,请记住使用 Overrides 关键字。该关键字用于通知编译器此方法将覆盖父类中的 Init 方法。

注意: Microsoft .NET 框架的联机帮助中提供了设计指南,可以帮助您决定要使用的继承类型。

阻止继承

在某些情况下,您可能不希望其他类继承您的类。如果是这样,您可以使用关键字 NotInheritable 来阻止类的继承。

Public Class NotInheritable Employee
   '''' 类定义
End Class

Visual Basic 6.0 以来的新增功能

使用 Visual Basic .NET,您可以继承 .NET 框架包含的所有类。您可以创建自己的类,使这些类继承现有的类;并通过对代码进行简单更改来添加或删除功能。

总结

本文介绍了如何继承基类,如何向基类添加其他属性,以及如何使用 Overrides 关键字来替换基类中定义的功能。还介绍了使用 MyBase 关键字调用基类中的方法,从而扩展基类的功能。虽然继承并不是对所有的应用程序都适用,但如果使用正确,继承将成为一种非常强大的工具。

关于作者

Paul D. Sheriff 是 PDSA, Inc. 的所有者。该公司位于南加利福尼亚州,是一家自定义软件开发和咨询公司。Paul 是南加利福尼亚的 MSDN 区域总监,著有《Paul Sheriff Teaches Visual Basic》一书,他为 Keystone Learning Systems 制作了 70 多套关于 Visual Basic、SQL Server、.NET 和 Web 开发的视频教材,最近还将与 Ken Getz 合作出版一本关于 SAMS 的书,书名是《ASP.NET Jumpstart》。有关详细信息,请访问 PDSA, Inc. 的 Web 站点 www.pdsa.com。

关于 Informant Communications Group

Informant Communications Group, Inc. 是一家专注于信息技术行业的多媒体公司。它成立于 1990 年,专门从事软件开发出版物、会议、目录发布和 Web 站点等业务。ICG 在美国和英国均设有办事处,目前已成为享有盛誉的媒体和营销内容集成商,并以高质量的技术信息满足 IT 人员不断增长的需求。

上一页  [1] [2] 


[C语言系列][C#防止反编译].NET 产品版权保护方案 (.NET源码加…  [C语言系列]NET 中C#的switch语句的语法
[互联动态].NETFramework3.0新特性介绍与问答翻译  [Web开发]asp.net代码空格显示为……点号的原因及解决办法
[Web开发]asp.net调用压缩软件对文件进行压缩与解压缩的代码  [Web开发]详细介绍asp.net获取日期时间的各种格式的函数
[Web开发]如何将JS文件编译到ASP.NET项目里的DLL文件中  [Web开发]asp.net加密口令的最简单方法
[Web开发]目前asp.net开发主流工具软件介绍  [Web开发]asp.net中的反射介绍
教程录入: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……
    咸宁网络警察报警平台