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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余威宏 中级黑马   /  2013-5-15 18:26  /  1648 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 余威宏 于 2013-5-16 09:18 编辑

大家好,有个问题一直有点不太清楚,请教一下。
Overload和Override的区别是什么呢,请详细说明一下。还有Overloaded的方法是否可以改变返回值的类型?

6 个回复

倒序浏览
楼主你好   这样的问题很多, 可以在黑马论坛搜一下帖子,我只能说重载跟返回类型无关。关注我关注黑马。楼主加油
回复 使用道具 举报
override(重写)  
1、存在于父类和子类之间,方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法只能抛出比父类方法异常的子集,如果父类或接口中的方法没有异常抛出,子类在复写覆盖方法时,也不可以抛出异常,子类如果存在异常,只能进行try处理,绝对不可以抛
4、方法被定义为final不能被重写。
overload(重载):发生在同一个类的同名函数之间,只考虑参数列表(参数个数、类型、顺序至少一个不同),与返回值无关。
回复 使用道具 举报
(overloading)重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关,
(overriding)重写涉及的是字父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同(或是其子类)
重写不能缩小重写方法的访问权;
回复 使用道具 举报
Overload(重载)和Override(覆盖)的区别。

        重载是本类方法中的关系,指同一个类中类名相同而参数列表不同的方法间的关系。
        而覆盖是继承或者实现中不同类间的关系,指在子类中重新写从父类继承的方法。
回复 使用道具 举报
嗯好的 谢谢大家
回复 使用道具 举报
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马