首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

突然间懂得了c++的多态性的意义。打个比喻,适当吗

2012-09-29 
突然间理解了c++的多态性的意义。打个比喻,适当吗?男人和女人,他们都继承于人类,他们有很多共性,例如:要吃

突然间理解了c++的多态性的意义。打个比喻,适当吗?
男人和女人,他们都继承于人类,他们有很多共性,例如:要吃饭、要睡觉、要小便等等。

但是,男人和女人,也有很多不同的地方,例如:小便的方式就不同。

多态性的意义,就是为了实现那些“不同”。

不知道这个比喻合适不合适?

所谓多态,就是多种状态,就是不同的状态的意思。

[解决办法]
其实……小便的方式也未必不同……
[解决办法]
我的比喻是,动物园,有狮子,有老虎。。。

不是多态就是: 狮子在吃东西,老虎在吃东西。

现在你有个基类叫动物了。

于是你可以说,动物在吃东西了,但是动物是什么?肯定会具体化到狮子和老虎身上。

没有狮子,老虎啊,动物就是个抽象的概念。

[解决办法]
相同的动作,不同的结果
[解决办法]
比喻是合理的。

不要忘了, 多态还包括静态多态(函数重载)。

维基百科上对于多态的描述:
In computer science, polymorphism is a programming language feature that allows values of different data types to be handled using a uniform interface. The concept of parametric polymorphism applies to both data types and functions.
[解决办法]
你还需要深入理解,多态在运行时,就是实现相同的代码调用,调用不同子类的功能
[解决办法]
理解了,要进一步明白什么地方能用得上, 怎么使用多态.
想办法在你自己的工程中用一下,才能真正明白
[解决办法]
比喻很形象...
多态可以方便程序的扩展,例如只面向人类这个基类编程就好,
当引用或指针实际指向是男人或女人时,就掉用其自己小便的方法。
而某一天如果想加个人妖,那么只需引用或指针实际指向的是人妖就好,
程序的结构不必大调整,就可以增加人妖小便了....

另外你的比喻是父类与子类之间的多态性的表现,函数重载亦是多态性的表现,没错!
[解决办法]
比喻不恰当,多态关键的是运行时动态绑定类型。你的比喻是描述不同对象的多种形态,完全不对。

热点排行