【VB.NET】——方法重载和方法重写的区别


前言


        第一次接触到这个问题的时候还是在看C#视频的时候,当时并不是对比出现的这个问题,再一次就是同学问的我,因为在学习时就感觉这两个问题区分的挺清楚的,有什么好争议的呢,当时不屑于回答他的问题,就这么过了,直到最近师父的一次提问,我才开始着手查起来。


       再说一句:一些相对简单的概念有时候在论坛中比在博客中更有收获,毕竟是百家争鸣


       最后一句:方法重载和方法重写上的比较并不能落脚在语言,而相对于标题来说我好像是自己打自己的脸了。

但其实,对于下面的内容就只能从语言出发。


内容


一、重写(Override)

        重写一个方法,以实现不同的功能。一般是用于子类在继承父类时,重新实现父类中的方法。


        .NET中的重写规则

        1.被重写方法不能以private修饰

        2.重写时方法不能用Const修饰

        3.重写时方法的参数列表以及返回值类型均可不同

    Public Class a
        Public Overridable Function ss(a As String) As String
            Return "a"
        End Function
    End Class

    Public Class b(Of a)
        Public Overloads Function ss() As Int32
            Return 3
        End Function
    End Class
    Sub Main()
        Dim b As New b(Of a)
        Dim a As New a
        Dim asd As String = "sddd"
        Console.WriteLine(a.ss(asd))
        Console.WriteLine(b.ss())
        Console.ReadKey()
    End Sub

代码显示的结果

二、重载(Overload)

        重载一般用于一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同

        .NET中的重载规则

        1.重载方法时参数类型或个数必须不同

        2.不同通过访问权限、返回类型、抛出的异常进行重载


总结

        针对于一个方法(忽略细节)。重写就是把它换掉,重载就是给他加个兄弟。


  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值