设计一个公交卡类的多态实现
刷卡时会有语音播报卡的种类,Card类中的voice函数函数体中输出"刷卡成功"
其他卡继承Card类 输出相应的内容:
Green_Card 的 voice函数输出”绿色卡”
Student_Card 的voice函数输出”学生卡”
Aged_Card 的voice函数输出”老年卡”
不同的卡类型调用同一个接口调用不同的语音播报;
#include <iostream>
using namespace std;
class Card{
public:
virtual void voice(){
cout<<"刷卡成功"<<endl;
}
};
class Green_Card:public Card{
public:
void voice(){
cout<<"绿色卡"<<endl;
}
};
class Student_Card:public Card{
public:
void voice(){
cout<<"学生卡"<<endl;
}
};
class Aged_Card:public Card{
public:
void voice(){
cout<<"老年卡"<<endl;
}
};
void method(Card *c){
c->Card::voice();
c->voice();
}
int main(){
// Card c;
// method(&c);
Green_Card gc;
method(&gc);
Student_Card sc;
method(&sc);
Aged_Card ac;
method(&ac);
}
运行结果如下: