黑马程序员技术交流社区

标题: 重载方法和重写方法有区别吗?谁能帮我解释一下。 [打印本页]

作者: 赵洋3916    时间: 2013-6-12 22:05
标题: 重载方法和重写方法有区别吗?谁能帮我解释一下。
重载方法和重写方法有区别吗?谁能帮我解释一下。
作者: ljh4282158    时间: 2013-6-12 22:15
重载就是相当于多了一个方法,之前的那个方法还是可以继续使用的!只是参数不同
重写就是把之前的那个方法给覆盖掉了,原来的方法不存在了
   我今天 发的帖子“面向对象基础”中有详细说明,你可以看看
作者: 甘斌斌    时间: 2013-6-12 22:28
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同 。

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数。
作者: 顾磊磊    时间: 2013-6-12 23:30
方法重载允许创建多个同名方法,这些方法可使用不同的参数类型。
例如我们非常熟悉的方法:Console.WriteLine();
就有很多重载,根据我们写的参数类型来调用相应的方法。

方法重写跟方法重载区别很大,在方法的继承中才出现
父类的一个方法成员用了virtual关键字,那么在子类中,可以用override关键字来重写这个方法。
两个方法的参数名和参数类型都是一致的。这跟方法重载的情况完全不同。
例子: 对于ToString()这个方法,如果感觉默认的用起来不爽,就可以改掉,
例如:
  1. public override string ToString()
  2. {
  3.     return "Hello World!“;
  4. }
复制代码
这样调用ToString()方法的时候,返回的就是字符串”Hello World!“了。

作者: popoluno    时间: 2013-6-13 14:27
重载时对应方法来说的,方法名相同参数个数或者参数类型不同就构成了重载而重写是指类与类之前的继承关系,子类的方法覆盖父类的方法,并要求方法名和参数都相同
作者: 彭康    时间: 2013-6-13 16:24
重载 是有2个或者多个方法名相同 参数不同或者参数个数不同的方法
重写 是将父类的virtual 方法重写,重写的结构必须与父类的相同。
作者: 李建龙    时间: 2013-6-13 20:56
重载就是相当于多了一个方法,之前的那个方法还是可以继续使用的!只是参数不同 重写就是把之前的那个方法给覆盖掉了,之前的那个方法不能用了!
作者: 高腾    时间: 2013-6-14 07:16
函数的重载是基于一个类而言的,形成重载的条件→
:参数顺序不同,或者参数类型、个数不同,与返回值无关

函数的重写涉及到面向对象的多态特性,能实现重写的关键字有→
:virtual abstract和override 重写要求参数类型 参数个数以及返回值类型都相同
作者: 成都—陈超    时间: 2013-6-14 20:57
重载是使方法具有不同的标志,达到使用同一个方法名能操作不同参数更方便的目的
重写涉及到类的继承,子类从父类继承,重写父类里的虚方法,实现自己的功能......
  个人理解   共同加油吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2