1. OverLoads:原现有成员相同的名称来声明属性或方法,但参数列表与原始成员不同(C#方法重载)。
2. Overrides:在派生类中重写基类成员(VB.NET中在基类中声明为Overridable的方法才可以在派生类中用Overrides关键字重写)(C#Override,C#中只有Abstact、Virtual方法才可以在派生类中重写)。
3. Shadows:隐藏基类中的同名元素(C#new)。
Module Module1
Sub Main()
cls.a()
cls.a(2)
Dim clsApp As TheShadow = New TheShadow()
clsApp.b() 'TheShadow类中隐藏基类中的@H_301_155@b方法
Dim clsSamp As New TheInherited
clsSamp.b() 'TheInherited类中重写的@H_301_155@b方法
Console.ReadLine()
End Sub
Class cls
Public Overloads Shared Sub a()
Console.WriteLine("无参数方法@H_301_155@a")
End Sub
Public Overloads Shared Sub a(ByVal i As Integer)
Console.WriteLine("重载无参数方法@H_301_155@a,输入参数@H_301_155@{0}",i)
End Sub
End Class
Class TheBase
Public Overridable Sub b()
Console.WriteLine("基类可重写方法@H_301_155@b")
End Sub
End Class
Class TheInherited
Inherits TheBase
Public Overrides Sub b()
MyBase.b() '使用@H_301_155@MyBase关键字访问基类方法
Console.WriteLine("派生类重写基类方法@H_301_155@b")
End Sub
End Class
Class TheShadow
Inherits TheInherited
Public Shadows Sub b()
Console.WriteLine("在派生类中使用@H_301_155@Shadows关键字覆盖基类同名方法@H_301_155@b")
End Sub
End Class
End Module