现在的位置: 首页 > 综合 > 正文

重载(Overloads)、重写(Overrides)和隐藏(Shadows) 的区别及用法

2013年08月11日 ⁄ 综合 ⁄ 共 685字 ⁄ 字号 评论关闭

重载、重写和隐藏是很容易混淆的类似概念。虽然所有这三种技术都使您得以创建同名的成员,但它们之间有一些重要的差异。

  • 重载的成员用于提供属性或方法的不同版本,这些版本具有相同名称但是接受不同数量的参数或者接受不同数据类型的参数。

  • 重写的属性和方法用于替换在派生类中不适合的继承的属性或方法。重写的成员必须接受同一数据类型和参数数量。派生类继承重写的成员。

  • 隐藏的成员用于局部替换具有更广范围的成员。任何类型都可隐藏任何其他类型。例如,可声明隐藏同名继承方法的属性。无法继承隐藏的成员。

一、重载属性和方法

  重载是在一个类中用相同的名称但是不同的参数类型创建一个以上的过程、实例构造函数或属性。

1、重载用法

  当对象模型指示对于在不同数据类型上进行操作的过程使用同样名称时,重载非常有用。例如,可显示几种不同数据类型的类可以具有类似如下所示 Display 过程:

?
Overloads Sub Display(ByVal theChar
As Char)
    '
Add code that displays Char data.
End Sub
Overloads Sub Display(ByVal theInteger
As Integer)
    '
Add code that displays Integer data.
End Sub
Overloads Sub Display(ByVal theDouble
As Double)
    '
Add code that displays Double data.
End Sub

如果不使用重载,那么即使每个过程执行相同的操作,也需要为它们创建不同的名称,如下所示:

?

抱歉!评论已关闭.