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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guojiadui 中级黑马   /  2015-5-28 15:50  /  2686 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

说道多态都是说重写方法,那钟载不是吗

21 个回复

倒序浏览
什么叫多态。多态就是龙生九子,各有不同;是我们都属于‘生物’这个基类,都有眼睛鼻子嘴这些成员变量,有‘吃饭喝水看美女’这些成员方法,但是每个物种都并不一样,比如人可能有‘看美女’这个成员方法,狗可能就是‘看母狗’这个成员方法。你重写(重载)了狗的‘看母狗’方法,导致了会有一种特殊的狗出现,这也符合广义多态的定义。
多态是种现象,广义地说重载实现了多态性,但是是编译时决定的静态多态。

个人感觉有时候或许并不用去纠结这些具体的概念,或许看到概念背后的真理会让你豁然开朗。推荐thinking in c++这本书,讲面向对象什么的讲的挺棒的。
回复 使用道具 举报
ETOLIA 发表于 2015-5-28 16:05
什么叫多态。多态就是龙生九子,各有不同;是我们都属于‘生物’这个基类,都有眼睛鼻子嘴这些成员变量,有 ...

看了,我也是醉了
回复 使用道具 举报
一楼神回复   必须顶一下
回复 使用道具 举报
多态是父类引用指向子类对象,就是毕老师说的“我要一只动物,你给我一只猫”

重载是,如果两个方法的功能是相近的,这时候如果方法名起得不同又相似容易让人搞混,干脆起同名,用参数列表来区分。当传入不同参数类型时,使用不通的方法。

所以这俩是两回事咯
回复 使用道具 举报
醉了醉了
回复 使用道具 举报
二楼总结的也太形象了吧
回复 使用道具 举报
我也觉得神回复,一样的!
回复 使用道具 举报
本帖最后由 大西洋 于 2015-5-28 20:31 编辑

重载、重写都是多态的表现形式~
同一个函数的多种形态~
回复 使用道具 举报
重载和多态没联系   有联系的是重写 子类重新父类方法
回复 使用道具 举报
ZYZQ 中级黑马 2015-5-28 21:18:40
11#
一个是个性,一个是基因
回复 使用道具 举报
重载  是一个类中的,跟多态 关系不大吧
回复 使用道具 举报
重载不是多态
回复 使用道具 举报
膜拜大神!这个都问的出来!
回复 使用道具 举报
我觉得重载与多态不同的概念
重载是在同一类中,在调用本类的方法是,遇到同名方法,会因为传入参数不同而调用的方法不同
多态是子类的方法会覆盖父类的方法,而且方法名与参数都必须相同,在创建了子类后,用其父类引用调用该方法是时,会因为子类的不同而调用不同的方法
回复 使用道具 举报
额 不是吧
回复 使用道具 举报
不是哦!
回复 使用道具 举报
看完,我也醉了
回复 使用道具 举报
多态是父类的引用类型变量指向了子类的对象,或者是接口的引用类型变量指向了实现类的对象。例如:猫、狗、动物。我要一个动物你可以给我一只猫或者狗都可以。
函数重写函数必须完全一样,重写的意义是父类的功能无法满足子类的需求所以才要重写。这时,没有必要定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写功能内容。
函数重载函数名一样,但形参列表不一样。

全手打
回复 使用道具 举报
Lucus 中级黑马 2015-5-28 23:13:44
20#
看到回帖。瞬间学习了!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马