2.编程题:
以下是一个简单的 比喻,将 多态概念 与 生活中 的 实际情况相联系:
比喻:动物园的讲解员和动物表演
想象一下你去了一家动物园,看到了许多不同种类的动物,
如狮子、大象、猴子等。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介绍。
在这个场景中,我们可以将动物比作是不同的类,
而每种动物表演则是类中的函数。而讲解员则是一个基类,
他可以根据每种动物的特点和表演,进行相应的介绍。
具体过程如下:
定义一个基类 Animal,其中有一个虛函数 perform(),用于在 子类中 实现不同的 表演行为。
#include <iostream>
using namespace std;
//封装 讲解员 父级 大类
class Animal{
public:
virtual void perform(){ //该函数是虚函数 同名函数
cout << "讲解员开始介绍" << endl;
}
};
//封装 狮子 类 共有继承于 讲解员 类
class Lion:public Animal{
void perform(){ //同名函数
cout << "狮子……" << endl;
}
};
//封装 老虎 类 共有继承于 讲解员 类
class Tiger:public Animal{
void perform(){ //同名函数
cout << "老虎……" << endl;
}
};
//封装 猴子 类 共有继承于 讲解员 类
class Monkey:public Animal{
void perform(){ //同名函数
cout << "猴子……" << endl;
}
};
int main()
{
Lion L; //用狮子的类 实例化一个 对象 T
Tiger T;
Monkey M;
Animal *p = &L; //父类指针 指向狮子
p->perform(); //显示输出
p = &T; //父类指针 指向老虎
p->perform(); //显示输出
p = &M; //父类指针 指向猴子
p->perform(); //显示输出
return 0;
}
结果:
狮子……
老虎……
猴子……
思源笔记