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类中隐藏基类中的b方法

        Dim clsSamp As New TheInherited

        clsSamp.b() 'TheInherited类中重写的b方法

        Console.ReadLine()

    End Sub

    Class cls

        Public Overloads Shared Sub a()

            Console.WriteLine("无参数方法a")

        End Sub

        Public Overloads Shared Sub a(ByVal i As Integer)

            Console.WriteLine("重载无参数方法a,输入参数{0}", i)

        End Sub

    End Class

    Class TheBase

        Public Overridable Sub b()

            Console.WriteLine("基类可重写方法b")

        End Sub

    End Class

    Class TheInherited

        Inherits TheBase

        Public Overrides Sub b()

            MyBase.b() '使用MyBase关键字访问基类方法

            Console.WriteLine("派生类重写基类方法b")

        End Sub

    End Class

    Class TheShadow

        Inherits TheInherited

        Public Shadows Sub b()

            Console.WriteLine("在派生类中使用Shadows关键字覆盖基类同名方法b")

        End Sub

    End Class

End Module

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值