黑马程序员技术交流社区

标题: 重载和重写,他们都是多态的体现? [打印本页]

作者: gzbbxu    时间: 2013-6-29 15:15
标题: 重载和重写,他们都是多态的体现?
本帖最后由 孙百鑫 于 2013-6-30 18:19 编辑

重写是父类的引用,指向子类的对象,可以说是对同一个指令所做出的不同反应。
而重载,为什么也说它是多态的体现呢?
况且,多态的前提是,必须是类与类之间有关系,要么继承要么实现,
我实现想不明白,重载那点符合这些前提?[/
color]

作者: 王磊    时间: 2013-6-29 15:39
曾和楼主一样,在这个问题上纠结过一段时间,后来也读了一些资料,有了一些个人的想法。
如果从JAVA面向对象的方面来说,重载不是多态的,因为是重载是发生在同一类中,并不涉及到类与类之间的关系。
但是从一个方法的多种形态(不同参数和结果)这一点上来说,重载也是符合多态的要求的。只不过这个多态并不是面向对象中的多态。也或者说有一个更专业的名词来定义这里说说的多态,只不过我还不知道而已。。。
所以单从面向对象的方面来说,个人认为重载不属于多态。
作者: 万琪    时间: 2013-6-29 16:29
这只是一种概念,,楼主不必纠结,,本身发明Java的人也纠结这个问题,,我们又何必烦恼呢,,拿来用不就好了,,

Thinking in C++中认为:多态的实现方法只有一个,也就是virtual function。

而也有其它的一些人认为,实现多态的方法很多。

国外的讨论,也证明overload是否多态是个问题。

作者: gzbbxu    时间: 2013-6-29 16:54
原来如此。不就结了
作者: 张承富    时间: 2013-6-29 21:24
学习了,呵呵,3楼都参与到国外了




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