C++,类和对象-多态,制作饮品

#include
using namespace std;
 
//多态案例,制作饮品

class AbstractDrinking
{
public:

	//煮水
	virtual void Boil() = 0;

	//冲泡
	virtual void Brew() = 0;

	//倒入茶杯
	virtual void PourInCup() = 0;

	//加入辅料
	virtual void PutSomething() = 0;

	//制作饮品
	void maleDrink()
	{
		Boil();
		Brew();
		PourInCup();
		PutSomething();
	}

};

//制作咖啡
class Coffe :public AbstractDrinking
{
public:
	//煮水
	virtual void Boil()
	{
		cout << "煮矿泉水" << endl;
	}

	//冲泡
	virtual void Brew()
	{
		cout << "冲泡咖啡" << endl;
	}

	//倒入茶杯
	virtual void PourInCup()
	{
		cout << "倒入杯中" << endl;
	}

	//加入辅料
	virtual void PutSomething()
	{
		cout << "加入糖和牛奶" << endl;
	}
};

//制作茶叶
class Tea :public AbstractDrinking
{
public:
	//煮水
	virtual void Boil()
	{
		cout << "煮农夫山泉" << endl;
	}

	//冲泡
	virtual void Brew()
	{
		cout << "冲泡茶叶" << endl;
	}

	//倒入茶杯
	virtual void PourInCup()
	{
		cout << "倒入茶杯中" << endl;
	}

	//加入辅料
	virtual void PutSomething()
	{
		cout << "加入枸杞" << endl;
	}
};

void doWork(AbstractDrinking* abs)//AbstractDrinking* abs=new Coffe
{
	abs->maleDrink();
	delete abs;

}

void test01()
{

	//制作咖啡
	doWork(new Coffe);

	cout << "-----------------" << endl;

	//制作茶叶
	doWork(new Tea);
}


int main()
{
	test01();
	return 0;
}

运行结果:

C++,类和对象-多态,制作饮品_第1张图片

 

你可能感兴趣的:(c++,开发语言)