l Overloads用法:
‘test的第一個同名函式
Public Overloads Function test(num as integer) as integer
test = num * num
End Function
‘test的第二個同名函式
Public Overloads Function test(str as string) as string
test = str & str
End Function
l Overrides用法:
‘建立一個Class
Class JustTest
‘ 兩個屬性
Public num1 As Integer
Public num2 As Integer
‘一個method
Public Overridable Function Add() As Integer
Add=num1+num2
End Function
End Class
‘建立一個Class繼承自JustTest
Class JustTest1
Inherits JustTest
Public result As Integer
Public Overrides Function Add() As Integer
result=num1+num2
End Function
End Class
PS.使用Overrides的條件為父子的型別需要相同,如需完全取代則用Shadows
l MSDN上的說法:
Protected
Dim 陳述式中的 Protected 關鍵字將項目宣告為只能從相同類別或從該類別衍生的類別中存取。下列程式碼顯示 Protected 宣告範例:
Protected Class ClassForMyHeirs
您只能在類別層級中,而且只能在宣告類別的成員時,使用 Protected。
Friend
Dim 陳述式中的 Friend 關鍵字將項目宣告為可從相同專案中存取,但無法從專案以外存取。下列程式碼顯示 Friend 宣告範例:
Friend StringForThisProject As String
您只能在模組、命名空間或檔案層次中使用 Friend。這表示您可以在原始程式檔或模組、類別或結構中宣告 Friend 項目,但不可以在程序內。
Protected Friend
Dim 陳述式中一起出現的 Protected 和 Friend 關鍵字將項目宣告為可在衍生的類別或相同的專案,或兩者當中使用。下列程式碼顯示 Protected Friend 宣告範例:
Protected Friend StringForProjectAndHeirs As String
您只能在類別層級中,而且只能在宣告類別的成員時,使用 Protected Friend。
l OMG的說法:
private、protected、public三者的作用是在定義class成員的開放性,
也就是說你可不可以直接去取用這個class內的成員。
設定為private屬性的成員,只能被class本身的成員函數存取,
你不能在class外的敘述中使用。
而設定為public的成員,則可以開放給程式內部的所有敘述。
至於protected,它跟private一樣也限制只有class內的成員函數可以使用,
不過除此之外,它也開放給繼承class作存取。