静态多态在程序编译的时候,确定将要执行的状态。
动态多态在程序运行的时候,才能确定执行的状态。
下面举例实现动态多态
work函数接口通过传参不同做不同的工作
#include "iostream"
using namespace std;
class person
{
public:
person()
{
}
virtual void work()
{
cout << "没有工作" << endl;
}
};
class police:public::person
{
public:
police()
{
}
void work()
{
cout << "抓小偷" << endl;
}
};
class nurse:public::person
{
public:
nurse()
{
}
void work()
{
cout << "照顾病人" << endl;
}
};
void work(person &a)
{
a.work();
};
int main()
{
nurse c;
police cc;
work( c );
work( cc );
}