Overloads(C#中为new)和Overrides的区别
Overloads的方法不需要父类声明:Overridable(C#中为Virtual),可以直接使用
而Overrides的方法必须父类声明:Overridable(C#中为Virtual),否则无法Overrides

Overrides的方法则会被子类所覆盖,不管使用父类还是子类的类型调用时,都会一律使用子类中的方法

如:
Module Module1
Sub Main()
Dim pTest As New B
Console.WriteLine(pTest.Test1())
Console.ReadLine()
End Sub
End Module
Public Class A
Public Function Test1() As String
Return Test2() & "Test1"
End Function
Public Function Test2() As String
Return "A"
End Function
End Class
Public Class B
Inherits A
Public Overloads Function Test2() As String
Return "B"
End Function
End Class
输出:
,继续使用父类中的方法,并没有使用子类中的方法

使用Overrides的方法则会使用被子类Overrides的方法。而不再使用父类中的原有方法
如:
Module Module1
Sub Main()
Dim pTest As New B
Console.WriteLine(pTest.Test1())
Console.ReadLine()
End Sub
End Module
Public Class A
Public Function Test1() As String
Return Test2() & "Test1"
End Function
Public Overridable Function Test2() As String
Return "A"
End Function
End Class
Public Class B
Inherits A
Public Overrides Function Test2() As String
Return "B"
End Function
End Class
输出为:
