#include<iostream>
using namespace std;
//多态案例 制作饮品
class AbstractDrinking
{
public:
//煮水
virtual void Boll() = 0;
//冲泡
virtual void Brew() = 0;
//倒入杯中
virtual void PourInCup() = 0;
//加入辅料
virtual void PutSomething() = 0;
//制作饮品
void makeDrink()
{
Boll();
Brew();
PourInCup();
PutSomething();
}
};
//制作coffee
class Coffee:public AbstractDrinking
{
//煮水
virtual void Boll()
{
cout << "煮农夫山泉" << endl;
}
//冲泡
virtual void Brew()
{
cout << "冲泡咖啡" << endl;
}
//倒入杯中
virtual void PourInCup()
{
cout << "倒入杯中" << endl;
}
//加入辅料
virtual void PutSomething()
{
cout << "加入牛奶" << endl;
}
};
//制作tea
class Tea:public AbstractDrinking
{
//煮水
virtual void Boll()
{
cout << "煮百岁山" << endl;
}
//冲泡
virtual void Brew()
{
cout << "冲泡茶" << endl;
}
//倒入杯中
virtual void PourInCup()
{
cout << "倒入杯中" << endl;
}
//加入辅料
virtual void PutSomething()
{
cout << "加入枸杞" << endl;
}
};
//制作
void doWork(AbstractDrinking* abc)//AbstractDrinking* abc = new Coffee
{
abc->makeDrink();
delete abc;//释放
}
void test01()
{
//制作coffee
doWork(new Coffee);
cout << "-----------------" << endl;
doWork(new Tea);
}
int main()
{
test01();
}
多态案例 制作饮品
最新推荐文章于 2024-05-22 00:03:53 发布