VB.NET多态性实现

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

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

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

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

猜你在找的VB相关文章