浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

Microsoft .NET 中的基类继承

Microsoft .NET 中的基类继承
升级到 Microsoft .NET
Paul D. Sheriff
PDSA, Inc.
2001 年 12 月
摘要:本文介绍了继承,说明了如何继承基类,并且介绍了 Microsoft .NET 中的实现继承和接口继承。

目标

  • 继承概述
  • 了解如何继承基类
  • 了解接口继承
  • 了解实现继承

前提条件


要彻底理解本文内容,需要满足以下条件:
  • 了解基本编码
  • 了解类及其工作原理,或者阅读过 Creating Classes in .NET(英文)一文
  • 可以使用 Microsoft® Visual Basic® .NET

目录

  • 继承概述
  • 继承基类
  • 构建示例窗体
  • 创建子类
  • 添加其他功能
  • MyBase 关键字
  • 抽象类
  • 选择要使用的继承类型
  • Visual Basic 6.0 以来的新增功能
  • 总结

继承概述


面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。在 Microsoft® Visual Basic® .NET 发布之前,Visual Basic 程序员并不具备这种能力。在 Visual Basic .NET 中,您可以继承 Microsoft .NET 框架中的类,也可以继承您自己创建的类。在本文中,我们将学习如何使用继承,并了解继承是如何大大缩短编程时间的。

简单示例


在您创建的许多类中,您会发现您常常需要与先前创建的类中的属性和方法相同的属性和方法。例如,如果有一个名为 Person 类的基类,该类包含 LastNameFirstName 属性以及 Print 方法,您会发现对于 Employee 类您也需要这些属性和方法。您可能还需要其他属性,例如 EmployeeID 和 Salary。如果从 Person 类(基类)继承,您可以将这些属性添加到新的 Employee 类中,并且仍然可以访问 Person 类中的所有属性。继承是指某个类可将其自身定义为具有某个特定类的所有属性和方法,然后再通过添加其他属性和方法对基类的定义进行扩展的能力。

继承术语


在深入研究这个主题之前,让我们先来定义几个术语。通过继承创建的新类称为“子类”,被继承的类称为“基类”、“父类”或“超类”。在某些 OOP 语言中,一个子类可以继承多个基类。也就是说,如果有一个 Person 类和一个 Car 类,则 Driver 类可以继承这两个类的所有属性和方法。而在 .NET 中,只允许单一继承,因此每个子类只能有一个基类。
.NET 支持三类继承:实现继承、接口继承和可视继承。实现继承是指使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
在 .NET 中,一个类可以从某个基类继承而来,而这个基类又可以从另外一个类继承而来。而且,您可以在一个类中使用一个或多个接口。

使用继承的原因


继承可以避免重复编写相同的代码,因此十分有用。如果有两个单独的类,而每个类都必须实现 FirstNameLastName 属性,则可能会出现重复代码。如果要更改某个属性的实现方式,则需要查找已实现这些属性的所有类以进行更改。这不仅要耗费大量时间,还增加了不同类中出现错误的风险。
在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。

覆盖


从基类中继承功能时,您可能会发现在基类中编写的一般方法仅执行继承类所需的部分功能。要执行所需的全部功能,您可以在新类中覆盖基类的方法,而无需使用新的名称创建一个全新的方法。
进行覆盖时,您可以选择完全覆盖基类的方法,也可以在继承类中编写代码来执行某些操作,然后再调用基类的方法。在覆盖时,请务必仍然使用与原始方法相同的合约(参数和返回类型)。也可以选择先调用基类的方法,然后在执行完基类的方法后编写其他代码。

继承基类


继承使您可以在一个类中使用另一个类的全部属性和方法。您可以使用关键字 Inherits 来获得基类的功能,而无需将代码从一个类复制并粘贴到另一个类中。

实现继承


本文将创建一个新类 LineDelim,它将继承 Creating Classes in .NET(英文)一文中创建的 Line 类的所有功能。之后,本文将通过添加两个其他属性和一个方法对 Line 类进行扩展。要添加的第一个属性是 Delimiter,使用它可以获得一个分隔符字符,并将其设置到类中。此分隔符将用于将行中的所有空格替换为分隔符字符。要添加的第二个属性是 OriginalLine,它将用于在向文本行插入新的分隔符之前保留文本的原始行。要创建的新方法是 ReplaceAll(),它将用于将文本行中的所有空格替换为分隔符字符。然后我们将学习如何覆盖 GetWord 方法,以便使用此分隔符(而不是空格)分隔文本行并搜索第一个词。

构建示例窗体


图 1 中显示的示例窗体将用来测试要创建的继承类。

1:用于测试继承的示例窗体
1.要创建图 1 所示的窗体,请单击 Project(项目),然后单击 Add Windows Form(添加 Windows 窗体)。
2.将窗体命名为 frmLineTest.vb 并单击 OK(确定)。
3.然后在该窗体上创建相应的控件并设置属性,如表 1 所示。
1:用于测试继承的窗体

控件


相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...