黑马程序员技术交流社区

标题: 迷迷糊糊的多态 [打印本页]

作者: 钟炳杰    时间: 2013-1-27 00:09
标题: 迷迷糊糊的多态
本帖最后由 钟炳杰 于 2013-1-27 14:47 编辑

1.what 什么是多态?
2.why 为什么.Net有多态这个概念,它有什么作用。
3.how 怎样去实现多态。
对于多态我现在听到就是迷迷糊糊的,似懂非懂的,谁能详细但通俗易懂的说说呢。。。谢谢啦。
作者: 王晨    时间: 2013-1-27 00:23
概念:多态按字面的意思就是“多种状态”,就是指同一个实体同时具有多种形式。它是面向对象程序设计的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。

多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。

多态的作用:
1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。
2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。



作者: 郑朝明    时间: 2013-1-27 10:24
多态是指两个或多个属于不同类的对象,对同一个消息做出的不同响应的能力。
例如有三种人:外科医生  cut       在病人的身体上开个口子
                     发型师    cut       开始剪头发
                     演员      cut       停止表演
他们对cut指令的反映都不同。可以把这三种不同的职业看成属于不同类的对象,而每个对象都得到同一消息cut,但是他们知道对于自己来说cut意味着什么,他们都会根据对cut的不同理解去做不同的事情。这就是多态,对同一消息做出不同响应的能力。
可以参看我之前发的实例去理解:虚方法实现多态
http://bbs.itheima.com/thread-36929-1-1.html

作者: 钟炳杰    时间: 2013-1-27 14:12
郑朝明 发表于 2013-1-27 10:24
多态是指两个或多个属于不同类的对象,对同一个消息做出的不同响应的能力。
例如有三种人:外科医生  cut   ...

例子真的很形象,看完例子终于明白了。谢谢了啊:handshake
作者: 郑朝明    时间: 2013-1-28 00:08
钟炳杰 发表于 2013-1-27 14:12
例子真的很形象,看完例子终于明白了。谢谢了啊

我也是初学者大家共同进步
作者: 罗志强    时间: 2013-1-28 09:29
本帖最后由 ShowStyle 于 2013-1-28 09:31 编辑

为什么要多态?
1,多态
    1>多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
    2>什么是多态?多态,顾名思义就是多种形态
    3>为什么要多态?为了程序的可扩展性
2,多态的实现方式
    1>虚方法实现多态
    2>抽象类实现多态
    3>接口实现多态
具体如何实现,可以到我的博客去看,有详细实现过程,及使用多态
http://www.cnblogs.com/showstyle/





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