黑马程序员技术交流社区

标题: 多态如何用最通俗的语言解释 [打印本页]

作者: 491482538    时间: 2016-6-22 10:18
标题: 多态如何用最通俗的语言解释
多态如何用最通俗的语言解释
作者: 笑个五毛买糖吃    时间: 2016-6-22 13:30
父类的引用指向子类对象

前面写父类,后面new子类
作者: 涟漪不起    时间: 2016-6-22 14:05
一个笼子装动物。猫狗都能装。
动物 a =new 猫();
动物 a =new 狗();
指向哪就代表哪。
作者: suming    时间: 2016-6-22 14:55
前来 学习
作者: danielchung6600    时间: 2016-6-23 00:53
同一类事物在不同时刻表现出不同的形态。比如你和面试官都是人,但在面试的那一刻,他就是爸爸了
作者: 迅雷    时间: 2016-6-23 08:45
事物的多重形态
作者: syinys7    时间: 2016-6-23 17:15
通俗的理解啊...

就比如说:
class Cat extends Animal {

Cat a=new Cat();  a是一只猫
Animal a=new Cat(); a是动物;a也是一只猫    父类引用指向子类的对象
作者: Mr.Wu    时间: 2016-6-23 20:31
你是人类,但是人类并不是你。
作者: 940752944    时间: 2016-6-23 20:40
动物类中的不同动物,父类就是动物,各种不同的动物就是子类
作者: 淹忆    时间: 2016-6-23 20:43
一起学习。
作者: 1316582449    时间: 2016-6-24 14:01
多态简单的说,可以分为两种,覆盖和重载。
覆盖的方式就是,重新定义父类里的虚函数,让这个函数在不同的子类里有不同的形式。
重载的方式就是,定义多个函数名称相同,但是参数不同的函数。对于编译器而言,最后是当做不同的函数来处理的。
也就是说:多态是将同样的函数名按不同的方式来使用。无非一种是上下关系,一种是并列关系。
作者: innovator    时间: 2016-6-24 15:25
danielchung6600 发表于 2016-6-23 00:53
同一类事物在不同时刻表现出不同的形态。比如你和面试官都是人,但在面试的那一刻,他就是爸爸了 ...

你怎么这么逗...
作者: innovator    时间: 2016-6-24 15:34
第一你要站在对象的角度来理解,面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用,如父类匿名对象的引用,它会根据你创建的任意子类对象去匹配,优势显而易见)
实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
多态的作用:消除类型之间的耦合关系。
现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。
--------------------------
再简单一点:坐公车时,一个男的靠在你的肩膀,你可能不爽,但是如果一个美女靠在你的肩膀你就很乐意,这就是多态的表现
作者: lifeiwangyue    时间: 2016-6-24 20:52
danielchung6600 发表于 2016-6-23 00:53
同一类事物在不同时刻表现出不同的形态。比如你和面试官都是人,但在面试的那一刻,他就是爸爸了 ...

这个。。。。。。。。。。。。。。
作者: 1316582449    时间: 2016-6-24 21:31
一种事物在不同情况下的多种体现形态
作者: sgnx    时间: 2016-6-24 21:46
就是一个对象在不同的时刻表现不同的状态,父类引用或则父接口引用指向子类对象
作者: 黑马的黑马    时间: 2016-6-24 21:58
多态就是事物的多种形态,比如你是你父亲的儿子,是你爷爷的孙子,以后也会是你妻子的丈夫,你孩子的父亲
作者: 请叫我南审    时间: 2016-6-24 22:37
danielchung6600 发表于 2016-6-23 00:53
同一类事物在不同时刻表现出不同的形态。比如你和面试官都是人,但在面试的那一刻,他就是爸爸了 ...

这个屌,,




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