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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 491482538 中级黑马   /  2016-6-22 10:18  /  850 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态如何用最通俗的语言解释

18 个回复

倒序浏览
父类的引用指向子类对象

前面写父类,后面new子类
回复 使用道具 举报
涟漪不起 来自手机 中级黑马 2016-6-22 14:05:50
藤椅
一个笼子装动物。猫狗都能装。
动物 a =new 猫();
动物 a =new 狗();
指向哪就代表哪。

点评

赞!  发表于 2016-6-22 19:34
回复 使用道具 举报
前来 学习
回复 使用道具 举报
同一类事物在不同时刻表现出不同的形态。比如你和面试官都是人,但在面试的那一刻,他就是爸爸了
回复 使用道具 举报
事物的多重形态
回复 使用道具 举报
通俗的理解啊...

就比如说:
class Cat extends Animal {

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

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

这个。。。。。。。。。。。。。。
回复 使用道具 举报
一种事物在不同情况下的多种体现形态
回复 使用道具 举报
sgnx 中级黑马 2016-6-24 21:46:45
16#
就是一个对象在不同的时刻表现不同的状态,父类引用或则父接口引用指向子类对象
回复 使用道具 举报
多态就是事物的多种形态,比如你是你父亲的儿子,是你爷爷的孙子,以后也会是你妻子的丈夫,你孩子的父亲
回复 使用道具 举报
danielchung6600 发表于 2016-6-23 00:53
同一类事物在不同时刻表现出不同的形态。比如你和面试官都是人,但在面试的那一刻,他就是爸爸了 ...

这个屌,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马