高级多态(三):复杂的抽象层次结构
来源:互联网 发布:java从入门到精通第4版 编辑:程序博客网 时间:2024/05/14 07:35
现在需要设计一组类,实现:动物(Animal),哺乳动物(Mammal),鱼类(Fish),并且实现Dog
类层次分析:
Animal,Mammal,Fish,都是抽象数据类型(ADT);
Mammal和Fish又分别继承自Animal;
Dog继承自Mammal;
类实现分析:
Animal基类,可实现动物都具有的:吃(Eat),睡(Sleep),运动(Move),繁衍(Reproduce),并且4个方法都是纯虚函数;
Mammal基类,哺乳动物的繁衍方式都一样,所以将繁衍(Reproduce)实现;
Fish基类,鱼类的繁衍方式都一样,所以将繁衍(Reproduce)实现;
Dog类,继承自Mammal,会实现:吃(Eat),睡(Sleep),运动(Move)。
class Animal{public:Animal(){};virtual ~Animal(){};virtual void eat() = 0;virtual void sleep() = 0;virtual void move() = 0;virtual void reproduce() = 0;private:};class Mammal : public Animal{public:Mammal(){};virtual ~Mammal(){};virtual void reproduce() { cout << "Mammal reproduce!" << endl; }private:};class Fish : public Animal{public:Fish(){};virtual ~Fish(){};virtual void reproduce() { cout << "Fish reproduce!" << endl; }private:};class Dog : public Mammal{public:Dog(){};~Dog(){};virtual void eat() { cout << "Dog eat!" << endl; }virtual void sleep(){ cout << "Dog sleep!" << endl; }virtual void move() { cout << "Dog move!" << endl; }private:};int _tmain(int argc, _TCHAR* argv[]){Dog dog;dog.eat();dog.move();dog.sleep();dog.reproduce();}输出:
Dog eat!Dog move!Dog sleep!Mammal reproduce!请按任意键继续. . .
0 0
- 高级多态(三):复杂的抽象层次结构
- 计算机组成原理第一章 研究内容 层次结构 应对系统复杂的重要方法--抽象
- OpenvSwitch中端口的抽象层次结构
- 三、存储器层次结构
- 【c++程序】复杂抽象结构
- 抽象的层次
- 数据类型的抽象层次
- 抽象的层次
- 复杂的抽象类
- 高级(复杂)指针的含义
- linux 下千兆网卡驱动开发 网络设备驱动的层次结构 (三)
- 集群:(三)微观剖析高可用集群(HA)的层次结构
- IIC设备驱动程序(三)————IIC设备驱动程序的层次结构
- 【抽象的5大层次】
- 存储系统的层次结构
- 存储器的层次结构
- unix的层次结构
- J2EE的层次结构
- C-043.结构体的储存细节,以及#pragma pack(n)对齐方式
- Oracle 的INSTR函数MySQL实现
- javascript权威指南学习笔记-数组1(八)
- wamp上配置域名
- 算法复杂度分析——数学角度
- 高级多态(三):复杂的抽象层次结构
- (六十五)for循环
- nginx http处理请求入口
- 2015.12.05-06待办事项
- final修饰符 final一个对象
- POJ 1811 *** Prime Test(详解Miiler_Rabin算法与Pollard_Rho算法)
- LibGDX_1.5: 使用 Gradle 创建 LibGDX 所有平台的关联项目
- C产生正态分布随机数写入文件并读出后用快速排序法排序
- hibernate二级缓存与查询缓存之间的关系