C++,类和对象-多态,制作饮品
#include<iostream>
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;
}
运行结果: