雄县做网站的,简书 用wordpress,蒙古文网站建设情况,个人wordpress 主题1.思维导图 2.编程题#xff1a;
以下是一个简单的比喻#xff0c;将多态概念与生活中的实际情况相联系#xff1a;
比喻#xff1a;动物园的讲解员和动物表演
想象一下你去了一家动物园#xff0c;看到了许多不同种类的动物#xff0c;如狮子、大象、猴子等。现在
以下是一个简单的比喻将多态概念与生活中的实际情况相联系
比喻动物园的讲解员和动物表演
想象一下你去了一家动物园看到了许多不同种类的动物如狮子、大象、猴子等。现在动物园里有一位讲解员他会为每种动物表演做简单的介绍。
在这个场景中我们可以将动物比作是不同的类而每种动物表演则是类中的函数。而讲解员则是一个基类他可以根据每种动物的特点和表演进行相应的介绍。
具体过程如下
定义一个基类 Animal其中有一个虛函数perform)用于在子类中实现不同的表演行为。
解
程序代码
#include iostreamusing namespace std;
class Animal//创建一个抽象类Animal包含动物名字、种类、行为和年龄四个属性
{
protected:string name;//姓名string kind;//种类string act;//表演行为int age;//年龄
public:Animal(){}Animal(string name,string kind,string act,int age):name(name),kind(kind),act(act),age(age){}virtual void perform()0;//使用纯虚函数};
class Lion:public Animal//创建派生类Lion继承Animal类增加性别属性
{
private:string sex;
public:Lion(){}Lion(string name,string kind,string act,int age,string sex):Animal(name,kind,act,age),sex(sex){}void perform()// 对父类的成员函数重写{cout 这是一只 sex kind 它的名字叫 name 它今年 age 岁了 它正在表演 act endl;}};
class Elephant:public Animal//创建派生类Elephant继承Animal类增加体重属性
{
private:int weight;
public:Elephant(){}Elephant(string name,string kind,string act,int age,int weight):Animal(name,kind,act,age),weight(weight){}void perform(){cout 这是一只 kind 它的名字叫 name 它今年 age 岁了 它重达 weight 斤 它正在表演 act endl;;}};
class Monkey:public Animal//创建派生类Monkey继承Animal类增加外号属性
{
private:string nickname;
public:Monkey(){}Monkey(string name,string kind,string act,int age,string nickname):Animal(name,kind,act,age),nickname(nickname){}void perform(){cout 这是一只 kind 它的名字叫 name 它有一个外号叫nickname 它今年 age 多岁了 它正在表演 act endl;}};
class Chicken:public Animal//创建派生类Chicken继承Animal类增加练习时长属性
{
private:string year;
public:Chicken(){}Chicken(string name,string kind,string act,int age,string year):Animal(name,kind,act,age),year(year){}void perform(){cout 这是一只 练习时长 year 的 kind 它的名字叫 name 它今年 age 岁了 它正在表演 act endl;;}};int main()
{//创建不同种类的动物对象Lion s1(辛巴,美洲狮,河东狮吼,3,公);Elephant s2(曼尼,猛犸象,泰山压顶,3,11000);Monkey s3(孙悟空,猕猴,大闹天宫,2000,齐天大圣);Chicken s4(坤坤,坤哥,唱、跳、Rap、篮球,25,两年半);Animal *p s1;p-perform();ps2;p-perform();ps3;p-perform();ps4;p-perform();return 0;
}代码截图 运行结果