VB.NET多态性实现

前端之家收集整理的这篇文章主要介绍了VB.NET多态性实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. OverLoads:原现有成员相同的名称来声明属性方法,但参数列表与原始成员不同(C#方法重载)

2. Overrides:在派生类中重写基类成员(VB.NET中在基类中声明为Overridable方法才可以在派生类中用Overrides关键字重写)(C#OverrideC#中只有AbstactVirtual方法才可以在派生类中重写)

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

猜你在找的VB相关文章