過載(Overloads)、重寫(Overrides)和隱藏(Shadows) 的區別及用法
過載、重寫和隱藏是很容易混淆的類似概念。雖然所有這三種技術都使您得以建立同名的成員,但它們之間有一些重要的差異。
-
過載的成員用於提供屬性或方法的不同版本,這些版本具有相同名稱但是接受不同數量的引數或者接受不同資料型別的引數。
-
重寫的屬性和方法用於替換在派生類中不適合的繼承的屬性或方法。重寫的成員必須接受同一資料型別和引數數量。派生類繼承重寫的成員。
-
隱藏的成員用於區域性替換具有更廣範圍的成員。任何型別都可隱藏任何其他型別。例如,可宣告隱藏同名繼承方法的屬性。無法繼承隱藏的成員。
一、過載屬性和方法
過載是在一個類中用相同的名稱但是不同的引數型別建立一個以上的過程、例項建構函式或屬性。
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
|
如果不使用過載,那麼即使每個過程執行相同的操作,也需要為它們建立不同的名稱,如下所示:
?
Sub DisplayChar(
|