谁能给我解释一下多态

来源:百度知道 编辑:UC知道 时间:2024/06/07 16:18:25
我在一本C++教程上看到多态的定义,可我不理解,谁能给我解释一下多态的意思,多态有什么用?
那本书还说多态可以代替switch语句,什么意思,如何用多态实现switch语句的功能?
给个例子最好,例子请用C++语言...

比如一个基类animal有一个抽象方法speak,定义为虚函数
virtual void speak()=0;

animal的派生类cat实现了方法speak { cout<<"喵"<<endl; }

animal的派生类dog实现了方法speak { cout<<"汪"<<endl; }

这时 有一个animal类的指针
animal *pAnimal;

如果这个指针指向一个cat类的对象,那么
pAnimal->speak() 输出 喵
如果这个指针指向一个dog类的对象,那么
pAnimal->speak() 输出 汪

也就是说 pAnimal->speak() 这句话 在运行时根据pAnimal指向的对象来决定到底执行哪个函数。

同样的代码,却能够在不同情况下 执行不同的功能,而这些功能又能在形式上统一起来,不同的对象用不同的方式去实现逻辑上的共同的功能“speak”。

这就是所谓的多态。

纯个人理解,欢迎高手指出错误。