黑马程序员技术交流社区

标题: 重载和重写有什么区别 [打印本页]

作者: caoyang521    时间: 2014-1-1 19:13
标题: 重载和重写有什么区别
本帖最后由 caoyang521 于 2014-1-1 21:36 编辑

最近刚接触函数,继承,有点乱,不是很明白,求教!
作者: 776699    时间: 2014-1-1 19:17
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,

将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了,而且如果子类的方法名和参数类型和个数都和父类相同,那么子类的返回值类型必须和父类的相同;如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。Overloaded的方法

是可以改变返回值的类型。也就是说,重载的返回值类型可以相同也可以不同。

作者: daoyua    时间: 2014-1-1 19:28
http://bbs.itheima.com/forum.php ... ;pre_pos=1&ext=,嘿嘿看这个
作者: 朱神必    时间: 2014-1-1 19:31
重载只看同名函数的参数列表,重写就是子父类方法一样但内容不同,说白了就是姜维继承了武侯遗志北伐,这就是重载;而魏延却推翻了武侯的遗志准备自立,这就是重写。
作者: jibenwujie    时间: 2014-1-1 19:56
两者都是基于继承,重写是子类的方法覆盖父类的方法,要求方法名和参数都相同重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法。
作者: caoyang521    时间: 2014-1-1 21:32
qq457986031 发表于 2014-1-1 19:31
重载只看同名函数的参数列表,重写就是子父类方法一样但内容不同,说白了就是姜维继承了武侯遗志北伐,这就 ...

谢谢,很形象的比喻!




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