黑马程序员技术交流社区
标题:
Overload和Override的区别是什么呢
[打印本页]
作者:
余威宏
时间:
2013-5-15 18:26
标题:
Overload和Override的区别是什么呢
本帖最后由 余威宏 于 2013-5-16 09:18 编辑
大家好,有个问题一直有点不太清楚,请教一下。
Overload和Override的区别是什么呢,请详细说明一下。还有Overloaded的方法是否可以改变返回值的类型?
作者:
袁梦希
时间:
2013-5-15 18:28
楼主你好 这样的问题很多, 可以在黑马论坛搜一下帖子,我只能说重载跟返回类型无关。关注我关注黑马。楼主加油
作者:
翟宝海
时间:
2013-5-15 18:40
override(重写)
1、存在于父类和子类之间,方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法只能抛出比父类方法异常的子集,如果父类或接口中的方法没有异常抛出,子类在复写覆盖方法时,也不可以抛出异常,子类如果存在异常,只能进行try处理,绝对不可以抛
4、方法被定义为final不能被重写。
overload(重载):发生在同一个类的同名函数之间,只考虑参数列表(参数个数、类型、顺序至少一个不同),与返回值无关。
作者:
极限冰风
时间:
2013-5-15 18:59
(overloading)重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关,
(overriding)重写涉及的是字父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同(或是其子类)
重写不能缩小重写方法的访问权;
作者:
第一枭雄
时间:
2013-5-15 22:59
Overload(重载)和Override(覆盖)的区别。
重载是本类方法中的关系,指同一个类中类名相同而参数列表不同的方法间的关系。
而覆盖是继承或者实现中不同类间的关系,指在子类中重新写从父类继承的方法。
作者:
余威宏
时间:
2013-5-16 09:18
嗯好的 谢谢大家
作者:
吴建昆
时间:
2013-5-16 10:45
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2