用c++实现的代码如下,运用抽象类,虚函数,类的继承与多态:
#include<iostream>
using namespace std;
class worker{
public:
virtual void DoWork()=0;
};
class plumber : public worker{
public:
virtual void DoWork(){
cout<<"i am plumber, xixi...\n"<<endl;
}
};
class capenter : public worker{
public:
virtual void DoWork(){
cout<<"i am capenter, haha...\n"<<endl;
}
};
class Aworker : public worker{
public:
Aworker(worker* wk){
this->work = wk;
}
virtual void DoWork(){
cout<<"A very smile...\n"<<endl;
work->DoWork();
}
private:
worker* work = NULL;
};
class Bworker : public worker{
public:
Bworker(worker* wk){
this->work = wk;
}
void DoWork(){
cout<<"B very haha...\n"<<endl;
work->DoWork();
}
private:
worker* work = NULL;
};
int main(int argc, char** argv){
plumber plumber1;
capenter cap1;
Aworker a_work(&plumber1);
Bworker b_work(&cap1);
a_work.DoWork();
b_work.DoWork();
return 0;
}