Visual Basic.NET+SQL Server全程指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

实例3-9 重载的运用

该实例实现步骤如下。

1 创建模块

在本章的项目chapter3下,右键单击该项目名下面的文件夹“类及对象”,在弹出菜单中选择“添加”→“模块”菜单命令,在弹出的对话框中输入模块名称BurdenModule,单击“添加”按钮完成模块的创建。

2 添加代码

双击BurdenModule.vb进入该模块的代码编辑窗口,向其中添加代码3-18中的代码。

代码3-18 BurdenModule.vb

        01. Module BurdenModule
        02.     Public Class TheClass
        03.         Overloads Sub ToOverload(ByVal value As Integer) '定义参数为整数的
    '重载方法
        04.             Console.WriteLine("I got an integer:" & CStr(value))
        05.         End Sub
        06.         '重载
        07.         Overloads Sub ToOverload(ByVal value As String) '定义参数为字符串
    '的重载方法
        08.             Console.WriteLine("I got a string:" & value)
        09.         End Sub
        10.     End Class
        11.     Sub Main()
        12.         Dim myCl As New TheClass
        13.         myCl.ToOverload(27) '调用类中参数为整数的方法
        14.         myCl.ToOverload("Hello World!") '调用类中参数为字符串的方法
        15.     End Sub
        16. End Module

代码3-18执行步骤如下:

① 第3行到第5行代码定义参数为整数的重载方法ToOverload(),实现输出一个整数;

② 第7行到第9行代码定义参数为字符串的重载方法ToOverload(),实现输出一个字符串;

③ 第12行代码实例化上面的类TheClass;

④ 第13行代码调用类中的参数为整数的方法ToOverload();

⑤ 第14行代码调用类中参数为字符串的方法ToOverload()。

3 运行结果

按F5键,运行程序,结果如图3-10所示。

图3-10 实例3-9运行结果

2.重写

派生类继承其基类中定义的属性和方法。这很有用,因为它意味着当这些项适合于要使用的类时,可以重用它们。如果继承成员不能按原样使用,则可以选择使用Overrides关键字定义新实现,基类中的属性或方法使用Overridable关键字标记,或者通过重新在派生类中定义成员来隐藏该成员。

实际上,重写的成员经常用于实现多态性。

下列规则适用于重写方法。

· 仅可重写在基类中用Overridable关键字进行标记的成员。

· 默认情况下,属性和方法为NotOverridable(禁止重写)。

· 重写的成员必须具有与从基类继承的成员相同的参数。

· 成员的新实现可通过在方法名称前指定MyBase来调用父类中的原始实现。

· 使用MustOverride关键字定义新实现时表示必须重写。如果使用了MustOverride,则基类必须是MustInherit的抽象类。

下面以实例说明重写的运用。