如果问有什么用,我告诉你,用处很大,我现在在做一个游戏项目,所有的游戏对象的基类都是Actor类,里面有个虚函数UpdateActor,用于更新游戏对象的状态,Actor有很多子类,比如子弹类飞机类等等,它们会重写UpdateActor函数。在主程序中,所有的游戏对象都被存储在一个容器中,类型是Actor*,这样想要更新所有的对象,直接遍历容器都调用UpdateActor,调用的是子类的函数而不是父类的。如果不用多态,很难做到。
你慢慢就明白了,这个多态指的是用基类的指针或引用指向子类对象,调用的函数还是子类的
在我看来多态是为了代码复用,实际上多态也是一种封装!比如铁路12306卖票,成人票,学生票,军人票,不同的人去买票会产生不同的票价(我称之为行为)。假设有一个buy的函数用来买票,如果不用多态,完全ok,但是你需要写好几个版本的buy函数。如果使用多态,则只需要用一个基类版本的buy就好。实现复用