黑马程序员技术交流社区

标题: override和重载的区别 [打印本页]

作者: 沈可    时间: 2014-1-15 10:00
标题: override和重载的区别
本帖最后由 沈可 于 2014-1-15 14:49 编辑

override与重载的区别?
作者: 幸福的彼岸    时间: 2014-1-15 10:12
override修饰符,覆写一个基类中的方法...重载则是将将同名方法重新写过,达到同名的函数实现不同的功能.从而实现了一个方法有不同的版本.override与重载的本质区别是,加入了override的修饰符的方法,此方法始终只有一个被你使用的方法..这个区别就好像:
  override就好像
  你叫张三,你爸爸给修改了名字为李四...
  重载就好像
  你叫张三,但是别人也可以叫张三..
作者: 念~    时间: 2014-1-15 10:20
override 是子类重新实现父类中的方法,能够被override的方法必须是virtual或者abstract的方法,是子类和父类之间的关系,调用的时候是调用的具体对象中的方法,如果子类没有重写就调用的父类的(默认继承嘛),重写了就是调用子类自己的方法

重载是在同一个类之间,同一个方法名,但是方法的签名中的参数类型,或者参数个数,或者参数的排列顺序,不同而重新实现的一个方法,比如控制台中常用的重载:Console.WriteLine(),按一下F12,可以看到这个方法中的参数类型和个数不一样,故可以输出很多类型不同的值,调用的时候是需要根据函数的签名去调用相应的方法
作者: 念~    时间: 2014-1-15 10:22
答 :重载:同类同名不同参,属于编译时多态。重载是在一个类中定义多个方法名相同的方法,表示一个行为有多种实现方式
重写:同名同参不同类,属于运行时多态。重写是用子类的方法来重写父类的方法,表示相同的方法在父类和子类中具有差异性

这是面试宝典中的回答
作者: 矫情    时间: 2014-1-15 12:55
重载,函数名相同,但参数类型或个数或顺序不同。其用途比如:可读性强;在构造器的时候根据参数初始化你想要的实例;代码维护性高,重载的方法,处理逻辑的代码通常都在一个方法里,其他方法通常调用偏多 override,是重写,字面意思,就是重写某个方法的业务逻辑。最大用途是多态,其实重载也是一种多态,但二种多态有个差别是,重载是编译时多态,override是运行时多态
作者: -淡然一笑    时间: 2014-1-15 13:07
重载 : 方法的名称相同,参数或参数类型不同,进行多次重载以适应不同的需要 .
Override : 进行基类中函数的重写,为了适应需要。




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