A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

重载方法和重写方法有区别吗?谁能帮我解释一下。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

10 个回复

倒序浏览
重载就是相当于多了一个方法,之前的那个方法还是可以继续使用的!只是参数不同
重写就是把之前的那个方法给覆盖掉了,原来的方法不存在了
   我今天 发的帖子“面向对象基础”中有详细说明,你可以看看
回复 使用道具 举报
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同 。

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
方法重载允许创建多个同名方法,这些方法可使用不同的参数类型。
例如我们非常熟悉的方法:Console.WriteLine();
就有很多重载,根据我们写的参数类型来调用相应的方法。

方法重写跟方法重载区别很大,在方法的继承中才出现
父类的一个方法成员用了virtual关键字,那么在子类中,可以用override关键字来重写这个方法。
两个方法的参数名和参数类型都是一致的。这跟方法重载的情况完全不同。
例子: 对于ToString()这个方法,如果感觉默认的用起来不爽,就可以改掉,
例如:
  1. public override string ToString()
  2. {
  3.     return "Hello World!“;
  4. }
复制代码
这样调用ToString()方法的时候,返回的就是字符串”Hello World!“了。
回复 使用道具 举报
重载时对应方法来说的,方法名相同参数个数或者参数类型不同就构成了重载而重写是指类与类之前的继承关系,子类的方法覆盖父类的方法,并要求方法名和参数都相同
回复 使用道具 举报
重载 是有2个或者多个方法名相同 参数不同或者参数个数不同的方法
重写 是将父类的virtual 方法重写,重写的结构必须与父类的相同。
回复 使用道具 举报
重载就是相当于多了一个方法,之前的那个方法还是可以继续使用的!只是参数不同 重写就是把之前的那个方法给覆盖掉了,之前的那个方法不能用了!
回复 使用道具 举报
高腾 中级黑马 2013-6-14 07:16:28
8#
函数的重载是基于一个类而言的,形成重载的条件→
:参数顺序不同,或者参数类型、个数不同,与返回值无关

函数的重写涉及到面向对象的多态特性,能实现重写的关键字有→
:virtual abstract和override 重写要求参数类型 参数个数以及返回值类型都相同
回复 使用道具 举报
重载是使方法具有不同的标志,达到使用同一个方法名能操作不同参数更方便的目的
重写涉及到类的继承,子类从父类继承,重写父类里的虚方法,实现自己的功能......
  个人理解   共同加油吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马