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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

说说overload和override的异同吧。

12 个回复

倒序浏览
Overload重载,是一类中的多态性的表现,如果类中定义了多个同名的方法,其中参数列表的参数(个数或对应位置不同),就是重载
不允许参数完全相同,而只是返回值不同的情况,jvm会报错.
Override 主要用于父类和子类之间的方法重写,即指定方法可以在子类中重写,其参数列表要求相同。
回复 使用道具 举报
Override更见于继承,比如继承抽象函数或者继承interface。必须override其所包含的方法,否则此函数无法编译。Override是 OOP中多态的体现,通过override可以将有共性的事物进行提炼。比如把大象关冰箱里和把长颈鹿关进冰箱里(分别关进两个不同的冰箱)时,完全可以new一个把动物关进冰箱里的类,然后实例化时,只要重写相应的方法而忽略整体的过程就可以完成了。  而重载更见于同一类下拥有同一命名的函数,比如2个数和3个数相加,函数名都可以写成是add。只不过一个是void add(int x,int y),void add(int x,int y,int z)。这样的好处是功能相同但是处理的参数不同函数不必多花脑细胞去想名字,让人一眼能够理解其的意思。而且部分重载是可以帮助程序员偷懒的,比如JOption的showmessage系列。可以偷懒只填需要弹出的提示框的内容,也可以通过各个参数定义一个完整的提示框。  简单的说ol是1个类的事,or是两个或者多个类 的事。不知道是否帮到你。

评分

参与人数 1技术分 +1 收起 理由
李家汉子初养成 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Overload:重载
|- 在一个类中定义的若干方法
|- 所有的方法名相同,但参数类型或个数不同
|- 只有参数有关,与返回类型无关
Override:覆写
|- 在继承的关系中
|- 子类定义了父类同名的方法,参数类型或个数最好完全一样。
|- 访问权限不能更严格
回复 使用道具 举报
你把其中一种弄清楚了自然就区分开了。
回复 使用道具 举报
重载的函数名可以是相同的,主要是靠参数列表的不同来区分的
覆盖,是子类重写父类,参数列表要相同吧
回复 使用道具 举报
cbb 中级黑马 2014-12-3 01:19:55
7#
话说 这个一点也不混淆的!重载是方法名相同,其他都不相同,覆盖是必须一模一样!
回复 使用道具 举报
caobin 来自手机 中级黑马 2014-12-3 09:16:26
8#
重载就是参数不一样的。覆盖就是参数一样的
回复 使用道具 举报
kenhe 中级黑马 2014-12-3 14:23:10
9#
重载定义在同一个类中   覆盖定义在父子类关系中
回复 使用道具 举报
挺好的。感谢楼上各位了。这里就不一一表谢啦啦
回复 使用道具 举报
学习学习
回复 使用道具 举报
重载之后两个功能都可以用,根据参数的不同进行选择,而覆盖存在于子父关系类中,子类方法覆盖父类,参数列表以及返回值类型都要求相同。
回复 使用道具 举报
3楼正解,,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马