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