我知道在面向对象的编程语言中运行时多态有什么用。例如,基类Superhero对于定义Superhero可以在不同超级英雄中继承和扩展的基本抽象属性很有用,例如Batman。
我也知道我们在有is-a关系的时候使用继承,比如Superman is-aSuperhero,我们可以用一个Base类指针来指向一个Derived类对象比如...
Superhero *h = new Spiderman();
Run Code Online (Sandbox Code Playgroud)
已验证。
但是我想知道在什么情况下我们需要做这样的事情,为什么我们不能只使用......
Spiderman *s_man = new Spiderman()
Run Code Online (Sandbox Code Playgroud)
什么情况或情况会迫使我们使用基类指针来保存子类对象。
如果有人能向我说明这一点,我将不胜感激。