多态的浅谈(C++版)

来源:互联网 发布:淘宝失效宝贝 编辑:程序博客网 时间:2024/04/30 01:38

      对于多态,是很多面向对象初学者很难逾越的鸿沟,就算可能有一定经验的开发者,对这个概念也不一定能叙述得很清楚。
这篇文章主要是想介绍一下我对多态的认识,以帮助初学者理解一下,也可以帮助对多态的概念有些许模糊的同行们。
写得不好的地方,还望指教。

      说到多态,就离不开虚函数。暂时抛开虚函数的定义,就只要知道具有virtual关键字的函数就是虚函数。这样好理解吧,呵呵。下面就用一个例子来开始多态的学习吧。
比如现在有一个动物的类Animal,这个动物具有运动的方法Move。(构造和析构函数就省略不写了)


但是只有这个方法我们无法知道某种动物的具体运动方式。以鸭子为例,鸭子既可以在陆地上走,也可以在水里游,现在有一个鸭子类,由于鸭子是动物的一种,所以继承动物类。


这个时候父类动物想知道鸭子的运动方式怎么办,那么多态就起作用了。

 

总结来说,有了virtual关键字,多态找的是子类的方法,否则就找父类的方法。(编译器会自动找出合适的对象来执行操作--多态性,教科书中”合适的对象“就是前面总结的所说的,每次看到"自动"啊,"合适的对象"什么的字眼就想打人,这跟菜谱中的"适量",”少许“一个鸟样)。
至于什么地方要用到多态,那就得看你的需求喽!
好了,多态就介绍到这里吧。如果你还不懂得话,那就再多看几遍吧,或者隔断时间再看应该就可以理解了。