C++ 多态 案例(//多态案例----制作饮品 //描述:煮水 冲泡 倒入杯中 加入辅料)
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++ 多态 案例(//多态案例----制作饮品 //描述:煮水 冲泡 倒入杯中 加入辅料)的更多相关文章
- Java多态面试题案例几解题思路
---恢复内容开始--- Java多态面试题案例几解题思路 这道题是来自别人,先开始看到题很懵,后来有自己的思路: class A { public String show(D obj){ retur ...
- [Mugeda HTML5技术教程之16]案例分析:制作跨屏互动游戏
本节我们将要做一个跨屏互动应用的案例分析,该应用时给一家商场做活动使用的,是一个跨屏爱消除游戏.PC端页面显示在连接在PC的大屏幕上,参与活动的玩家可以用自己的手机扫描PC端页面上的二维码,连接成功后 ...
- [Mugeda HTML5技术教程之15]案例分析:制作移动教育课件
本文档要分析的案例是一个一氧化碳还原氧化铜的教育小课件,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作移动教育课件的方法.Mugeda为移动教育领域和移动数字出版领域提供理想的教 ...
- [Mugeda HTML5技术教程之14]案例分析:制作网页游戏
本文档要分析的案例是一个爱消除的网页小游戏,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作网页游戏的方法. (一)游戏规则: 1.开始游戏时,手机出现在最上面一行的任意一格: 2 ...
- 廖雪峰Java2面向对象编程-3继承和多态-2多态
1.重载 子类覆写父类的方法称为重载Override. 父类和子类拥有一摸一样的方法(方法的名字.返回值.参数是相同的,但是方法的语句是不一样的) 方法签名如果不同就不是重载,而是创建了一个新的方法. ...
- 9 python 多态与多态类
1.多态定义 多态指的是一类事物的多种形态 比如动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): @abc.abstractm ...
- c++ 宏多态 动态多态和静态多态(转载)
转载出处:通道 多态(polymorphism)一词最初来源于希腊语polumorphos,含义是具有多种形式或形态的情形.在程序设计领域,一个广泛认可的定义是“一种将不同的特殊行为和单个泛化记号相关 ...
- 四. Java继承和多态4. 多态和动态绑定
在Java中,父类的变量可以引用父类的实例,也可以引用子类的实例. 请读者先看一段代码: public class Demo { public static void main(String[] ar ...
- Java修炼——面向对象的三大特征_多态_多态的三个必要条件
多态指的是同一个方法调用,由于对象不同可能会有不同的行为,现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1.多态是方法的多态,不是属性的多态(多态与属性无关) 2.多态的存在有三个必要条 ...
随机推荐
- 19、lnmp_mysql、nfs组件分离
19.1.LNMP一体机的数据库分离成独立的数据库: 1.根据以上学习过的方法在db01服务器上安装独立的mysql数据库软件: 2.在web01服务器上导出原先的数据库: [root@web01 t ...
- js动态添加的html绑定事件
使用场景:网站上ul里面的li数据需要从后台数据查询出来即通过js添加数据.然后监听点击li点击事件. 添加数据代码: for(var i = 0; i < table.length; i++) ...
- 【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点
大家好,我是小于哥哈.前几天能分享了第一期面试题,MySQL 中有哪几种锁 和 这些锁各有哪些特点 ,这道面试题是经常会被问到的一个面试题,大家反馈的都挺不错的.今天特此来总结一下. 首发于公众号[终 ...
- My Idol:Beihai Zhang --<<The Three-body Problem>>
First 父:"要多想." 子:"想了之后呢?" 父:"北海,我只能告诉你在那以前要多想." 要多想--这场战争敌我力量对比过于悬殊,硬碰 ...
- Docker:Linux离线安装docker-compose
1)首先访问 docker-compose 的 GitHub 版本发布页面 https://github.com/docker/compose/releases 2)由于服务器是 CentOS 系统, ...
- Nginx:Nginx日志切割方法
Nginx的日志文件是没有切割(rotate)功能的,但是我们可以写一个脚本来自动切割日志文件. 首先我们要注意两点: 1.切割的日志文件是不重名的,所以需要我们自定义名称,一般就是时间日期做文件名. ...
- SpringMVC(7)格式化显示
在SpringMVC(六)数据验证中我们介绍了如何验证提交的数据的正确性,当数据验证通过后就会被我们保存起来.保存的数据会用于以后的展示,这才是保存的价值.那么在展示的时候如何按照要求显示?(比如:小 ...
- shiro框架基础
一.shiro框架简介 Apache Shiro是Java的一个安全框架.其内部架构如下: 下面来介绍下里面的几个重要类: Subject:主体,应用代码直接交互的对象就是Subject.代表了当前用 ...
- Linux 3.16 release 贡献度
内核 3.16 release 的贡献度可以在下面网页看到: http://www.remword.com/kps_result/3.16_whole.html 一共发布了 12802 个补丁, 18 ...
- Formily教程 | formily是中后台复杂场景的表单解决方案
前言 formily 不是一个简单的前端轮子.Formily 是一个由阿里巴巴集团多 BU 共建的面向中后台复杂场景的表单解决方案,它也是一个表单框架.它的前身是供应链平台在 2019 年初对外开源的 ...