黑马程序员技术交流社区

标题: 覆盖和重载区别在哪里? [打印本页]

作者: steven152    时间: 2014-8-20 23:58
标题: 覆盖和重载区别在哪里?
请问下覆盖和重载区别哪里?有时经常搞混!
作者: 轩辕苍穹    时间: 2014-8-21 00:04
重写,就是把原先的覆盖掉,直接运行新的,而重载不会覆盖,原先的也要运行。
作者: 郭旭辉    时间: 2014-8-21 00:47
函数的重载:在同一个类中,允许存在一个以上的相同名称的函数,只要他们的参数个数或者参数类型不同即可。
覆盖:覆盖式面向对象继承里面的。子类继承父类的时候,针对相同的成员函数,子类会对其覆盖重写。这样才能变得原来越强大。
重载和重写是两个不同的概念。
作者: 谢建平    时间: 2014-8-21 01:21
重载是指同一个类里面   方法名名相同  参数类型或参数个数不同  (与返回类型无关),调用 的时候会根据参数调用相对应的方法。覆盖就是重写,子类要覆盖父类的某个方法,方法名和返回类型,参数列表都得一致。
作者: noiary    时间: 2014-8-21 10:11
我是来看答案的
作者: 永恒星空    时间: 2014-8-21 11:37
看看~~~~~
作者: 月夜小楠    时间: 2014-8-21 12:57
路过~~~~~
作者: 范靖明    时间: 2014-8-21 15:12
重载是参数列表不同(参数个数、顺序、类型),覆盖方法名必须相同,返回值必须相同!
作者: 華燈初上    时间: 2014-8-21 15:58
本帖最后由 華燈初上 于 2014-8-21 16:02 编辑

覆盖即复写,就是把父类的方法在子类中重写(方法名必须相同),接口的子类中必须复写父类的方法,而抽象的子类中必须复写父类的抽象方法,不必复写父类的非抽象方法;重载就是在一个类中可以有两个或者两个以上的同名函数(方法),但是参数个数必须不同。
作者: 默默丶    时间: 2014-8-21 16:32
重载是在同一个类中,由于参数个数和参数类型的不同进行重载。
而覆盖是发生在子类继承父类中,由于子类和父类的方法相同。但是方法主题不同,子类中的主题覆盖了父类中的主题。从而实现了覆盖
作者: 丨懒蟲灬Nigh    时间: 2014-8-21 21:30
重载 只看同名函数的参数列表  同一个类里面   方法名名相同  参数类型或参数个数不同
重写 子父类方法要一模一样     要覆盖父类的某个方法,方法名和返回类型,参数列表都得一致
作者: Huberry    时间: 2014-8-22 00:21
重载:存在于同一个类中,两个方法方法名一样,但是参数不同

覆盖:存在于子父类中或者实现接口中,子类通过定义一个名字和参数都与父类方法相同的方法来覆盖父类的老方法,子类对象在调用此方法的时候执行的是子类中定义的这个新方法
作者: 男人你得有范    时间: 2014-8-22 00:33
同意四楼
作者: 恣意的豆腐    时间: 2014-8-22 08:57
  学习了
作者: 小洁呵呵    时间: 2014-8-22 09:05
覆盖 方法名和参数都一样,方法内容不一样     重载  方法名一样,参数不一样




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