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

© 张海洋 中级黑马   /  2013-3-22 23:42  /  1656 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄玉昆 于 2013-3-23 08:44 编辑

Overload和Override的区别?Overloaded的方法是否可以改变返回值的类型?

4 个回复

倒序浏览
回复 使用道具 举报
override(重写)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
   overload(重载)
1、参数类型、个数、顺序至少有一个不相同。  
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。


Overloaded的方法是可以改变返回值的类型。
回复 使用道具 举报
overload和override实际上是没有任何关系的,但是很多面试中会拿出这种问题来问
首先overload是指函数重载,属于同类内同名函数范畴
而override指的是函数重写,属于子类对父类函数函数重写范畴
前者是类内的事情,后者是两个类之间的事情,这样解释区别就很明显了吧

另外回答你第二个问题,你的意思应该是想问返回值类型改变后同名函数是否还是函数重载对不对。一句话,判断是否是函数重载看的只是:参数列表,不要去管返回值类型
回复 使用道具 举报
overload和override实际上是没有任何关系的,但是很多面试中会拿出这种问题来问
首先overload是指函数重载,属于同类内同名函数范畴
而override指的是函数重写,属于子类对父类函数函数重写范畴
前者是类内的事情,后者是两个类之间的事情,这样解释区别就很明显了吧

另外回答你第二个问题,你的意思应该是想问返回值类型改变后同名函数是否还是函数重载对不对。一句话,判断是否是函数重载看的只是:参数列表,不要去管返回值类型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马