一、概述
1)接口的多种不同的实现方式即为多态。
2)多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在C++中都是通过虚函数(Virtual Function) 实现的。
3)关键点:多态还有个关键之处就是一切用指向基类的指针或引用来操作对象
二、示例
1)普通的对象操作方式
#include <iostream> using namespace std; class A{ public: void print() { cout<<"This is A"<<endl; } }; class B:public A{ public: void print() { cout<<"This is B"<<endl; } }; int main(){ //为了在以后便于区分,我这段main()代码叫做main1 A a; B b; a.print(); b.print(); } |
输出:This is A
This is B
2)按照多态的操作对象方式:通过父类对象来操作子类对象
#include <iostream> using namespace std; class A{ public: void print() { cout<<"This is A"<<endl; } }; class B:public A{ public: void print() { cout<<"This is B"<<endl; } }; int main(){ //通过父类来操作子类 A a; B b; A* p1=&a; A* p2=&b; p1->print(); p2->print(); } |
输出:This is A
This is A
这跟我们预期的不一样。