Public Class TheBase Public Overridable Sub over() Debug.WriteLine("TheBase") End Sub End Class
Public Class TheInherited : Inherits TheBase Public Overrides Sub over() Debug.WriteLine("TheInherited") End Sub End Class Public Class TheShadowed : Inherits TheInherited Public Shadows Sub over() Debug.WriteLine("TheShadowed") End Sub End Class
第一种情况:
Dim c As TheBase c = New TheBase() c.over() ' 输出 TheBase c = New TheInherited() c.over() ' 输出 TheInherited c = New TheShadowed() c.over() ' 输出 TheInherited
第二种情况: Dim c As TheInherited c = New TheBase() c.over() ' 错误!无效的转换。 c = New TheInherited() c.over() ' 输出 TheInherited c = New TheShadowed() c.over() ' 输出 TheInherited
第三种情况: Dim c As TheShadowed c = New TheBase() c.over() ' 错误!无效的转换。 c = New TheInherited() c.over() ' 错误!无效的转换。 c = New TheShadowed() c.over() ' 输出 TheShadowed
Public Class TheBase Public Overridable Sub over() Debug.WriteLine("TheBase") End SubEnd Class Public Class TheInherited : Inherits TheBase Public Overrides Sub ov