重载和重写关键字示例

更新:2007 年 11 月

本示例演示如何利用 Visual Basic 语言功能(例如重载和重写)来扩展派生类。还演示如何允许对类成员进行各种级别的访问,包括 Public、Private 和 Protected。

获取示例及其安装说明

  • 执行下列一项或多项操作:

    • 在“帮助”菜单上,单击“示例”。

      自述文件将显示有关示例的信息。

    • 访问 Visual Studio 2008 示例网站。该网站提供了最新版本的示例。

    • 在安装了 Visual Studio 的计算机上查找示例。默认情况下,示例和自述文件安装在驱动器号:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。对于 Visual Studio 的速成版,所有示例都可联机找到。

有关更多信息,请参见定位示例文件

安全说明:

此示例代码用于阐释概念,因此仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“按原样”提供此示例代码,不提供任何保证。

运行此示例

  • 按 F5。

演示

此应用程序模拟交通工具注册系统,支持汽车、船和自行车。

它使用称为 Vehicle 的基类,从该基类派生出 Automobile、Boat 和 Bicycle。每个派生类都以某种方式扩展基类:重写基类方法、实现自己的新方法或属性,或替换(隐藏)基类的成员。也有一个称为 DepartmentOfMotorVehicles 的 Friend 类,该类模拟从数据库读取数据和将数据写入数据库。

此应用程序演示这些语句和修饰符在类以及它们的成员中的用法:

关键字

用法

Inherits 语句

在 Automobile、 Boat 和 Bicycle 上用于指示 Vehicle 为基类。

NotInheritable

在 DepartmentOfMotorVehicles 类上使用。此类不能用作基类。

MustInherit

在 Vehicle 类上使用。只有从 Vehicle 派生的类可以被实例化。

Overloads

Boat 类中的 Register 方法被重载以添加最大数量的乘客。

Overridable

在 ID 属性上的 Vehicle 类中使用。在基类中实现时,派生类可以实现另一个版本。

Overrides

在 CurrentValue 属性上的所有三个派生类中使用,以替换基类中的默认实现。

MustOverride

在 Vehicle 类成员(ComputeRegistrationFee 和 Salary)中使用。这些成员没有在 Vehicle 中实现时,它们必须在没有标记为 MustInherit 的派生类中实现。

Shadows

在 Register 方法上的 Bicycle 类中使用。

Public (Visual Basic)

在类及其成员上用于指示某个类或成员对于客户端应用程序可用。

Protected (Visual Basic)

在 Vehicle 类中的字段上使用。可以在 Vehicle 类和派生类中访问这些字段,但客户端应用程序不能访问这些字段。

Friend (Visual Basic)

在 DepartmentOfMotorVehicles 类上使用。该类用于程序集中,但在客户端应用程序中不能访问该类。

Private (Visual Basic)

在类字段上使用。这些字段在客户端应用程序中不能访问。

Shared (Visual Basic)

在 DepartmentOfMotorVehicles 类的方法中使用。这样 DepartmentOfMotorVehicles 类就可以用作函数库。

请参见

其他资源

Visual Basic 中面向对象的编程