1 //多态案例----制作饮品
2 //描述:煮水 冲泡 倒入杯中 加入辅料
3
4 #include <iostream>
5 #include <string>
6 using namespace std;
7
8 class AbstractDriking
9 {
10 public:
11
12 //煮水
13 virtual void Boil() = 0;
14
15 //冲泡
16
17 virtual void Brew() = 0;
18
19 //倒入杯中
20 virtual void PourInCup() = 0;
21
22 //加入辅料
23 virtual void PutSomething() = 0;
24
25 //制作
26 void makerDrink()
27 {
28 Boil();
29 Brew();
30 PourInCup();
31 PutSomething();
32 }
33 };
34
35 //制作咖啡
36 class Coffee :public AbstractDriking
37 {
38 public:
39 //煮水
40 virtual void Boil()
41 {
42 cout << "煮百岁山水" << endl;
43 }
44
45 //冲泡
46
47 virtual void Brew()
48 {
49 cout << "冲泡咖啡" << endl;
50 }
51
52 //倒入杯中
53 virtual void PourInCup()
54 {
55 cout << "倒入咖啡杯" << endl;
56 }
57
58 //加入辅料
59 virtual void PutSomething()
60 {
61 cout << "加入糖 ,牛奶" << endl;
62 }
63
64 };
65 //制作茶
66 class Tea :public AbstractDriking
67 {
68 public:
69 //煮水
70 virtual void Boil()
71 {
72 cout << "煮农夫山泉水" << endl;
73 }
74
75 //冲泡
76
77 virtual void Brew()
78 {
79 cout << "冲泡茶" << endl;
80 }
81
82 //倒入杯中
83 virtual void PourInCup()
84 {
85 cout << "倒入茶杯" << endl;
86 }
87
88 //加入辅料
89 virtual void PutSomething()
90 {
91 cout << "加入茶叶 ,柠檬" << endl;
92 }
93
94 };
95
96 //制作函数
97 void doWork(AbstractDriking* abs)// AbstractDriking*abs = new Coffee
98 {
99 abs->makerDrink();
100 delete abs;
101 }
102 void test01()
103 {
104 //制作咖啡
105 cout << "************制作咖啡************" << endl;
106 doWork(new Coffee);
107
108 //制作茶叶
109 cout << "************制作茶************" << endl;
110 doWork(new Tea);
111
112 }
113
114 int main()
115 {
116
117 test01();
118
119
120 system("pause");
121
122 return 0;
123
124 }

C++ 多态 案例(//多态案例----制作饮品 //描述:煮水 冲泡 倒入杯中 加入辅料)的更多相关文章

  1. Java多态面试题案例几解题思路

    ---恢复内容开始--- Java多态面试题案例几解题思路 这道题是来自别人,先开始看到题很懵,后来有自己的思路: class A { public String show(D obj){ retur ...

  2. [Mugeda HTML5技术教程之16]案例分析:制作跨屏互动游戏

    本节我们将要做一个跨屏互动应用的案例分析,该应用时给一家商场做活动使用的,是一个跨屏爱消除游戏.PC端页面显示在连接在PC的大屏幕上,参与活动的玩家可以用自己的手机扫描PC端页面上的二维码,连接成功后 ...

  3. [Mugeda HTML5技术教程之15]案例分析:制作移动教育课件

    本文档要分析的案例是一个一氧化碳还原氧化铜的教育小课件,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作移动教育课件的方法.Mugeda为移动教育领域和移动数字出版领域提供理想的教 ...

  4. [Mugeda HTML5技术教程之14]案例分析:制作网页游戏

    本文档要分析的案例是一个爱消除的网页小游戏,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作网页游戏的方法. (一)游戏规则: 1.开始游戏时,手机出现在最上面一行的任意一格: 2 ...

  5. 廖雪峰Java2面向对象编程-3继承和多态-2多态

    1.重载 子类覆写父类的方法称为重载Override. 父类和子类拥有一摸一样的方法(方法的名字.返回值.参数是相同的,但是方法的语句是不一样的) 方法签名如果不同就不是重载,而是创建了一个新的方法. ...

  6. 9 python 多态与多态类

    1.多态定义 多态指的是一类事物的多种形态 比如动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): @abc.abstractm ...

  7. c++ 宏多态 动态多态和静态多态(转载)

    转载出处:通道 多态(polymorphism)一词最初来源于希腊语polumorphos,含义是具有多种形式或形态的情形.在程序设计领域,一个广泛认可的定义是“一种将不同的特殊行为和单个泛化记号相关 ...

  8. 四. Java继承和多态4. 多态和动态绑定

    在Java中,父类的变量可以引用父类的实例,也可以引用子类的实例. 请读者先看一段代码: public class Demo { public static void main(String[] ar ...

  9. Java修炼——面向对象的三大特征_多态_多态的三个必要条件

    多态指的是同一个方法调用,由于对象不同可能会有不同的行为,现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1.多态是方法的多态,不是属性的多态(多态与属性无关) 2.多态的存在有三个必要条 ...

随机推荐

  1. excel VBA数组运用

    Sub a()Dim i人数 As Integer'定义变量Dim i考试成绩() As Integer'定义数组Dim i As Integer'定义变量i人数 = InputBox("输 ...

  2. 使用Git将代码上传至Gitee码云中

    Git是一个开源的分布式版本控制系统,可以高效处理任何或小或大的项目 Git与常用的版本控制工具CVS.Subversion 不同,Git采用了分布式版本库的方式,不必服务器端软件支持 Git与SVN ...

  3. 什么是DDoS引导程序IP Stresser?

    1.什么是IP Stresser? IP Stresser是一款用于测试网络或服务器稳健性的工具.管理员可以运行压力测试,从而确定现有资源(带宽.CPU 等)是否足以处理附加负载. 测试个人网络或服务 ...

  4. POJ 1015 Jury Compromise dp

    大致题意: 从n个候选人中选出m个人作为陪审团.为了让陪审团的选择更公平,辩方和控方都为这n个候选人给出了满意度(辩方为D[j],控方为P[j],范围0至20).现在要使得选出的m位候选人的辩方总和与 ...

  5. 其他:压力测试Jmeter工具使用

    下载路径: http://yd01.siweidaoxiang.com:8070/jmeter_52z.com.zip 配置汉化中文: 找到jmeter的安装目录:打开 \bin\jmeter.pro ...

  6. SpringMVC(12)完结篇 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现

    到这里已经写到第12篇了,前11篇基本上把Spring MVC主要的内容都讲了,现在就直接上一个项目吧,希望能对有需要的朋友有一些帮助. 一.首先看一下项目结构: InfrastructureProj ...

  7. org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class

    错误:org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util ...

  8. php混淆加密解密实战

    在查看别人的php源码的时候,我们经常会看到加密后的php代码.那么php加密原理是什么呢?怎么解密呢? 混淆加密 我们从百度随便搜索一个加密网站,例如:http://dezend.qiling.or ...

  9. nmon打开nmon文件出现 运行时错误13类型不匹配问题解决

    根据nmon工具安装及nmon analyser的使用 - 空谷幽兰LDD - 博客园 (cnblogs.com)文中,用nmon_analyse去打开监控到的nmon文件,出几个报错. 1 用WPS ...

  10. Leetcode No.27 Remove Element(c++实现)

    1. 题目 1.1 英文题目 Given an integer array nums and an integer val, remove all occurrences of val in nums ...