永发信息网

面向对象的多态性,通俗点解释一下

答案:2  悬赏:10  手机版
解决时间 2021-03-11 22:01
  • 提问者网友:沉默的哀伤
  • 2021-03-11 02:38
面向对象的多态性,通俗点解释一下
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-03-11 02:50
多态是类型理论的一个概念。
意思是:
一个名字可以代表许多不同的对象,只要这些对象都有共同的父类,这样这个名字代表的不同对象就可以以不同的方式来响应同一消息。

这是抽象的解释,我觉得实际上多态就是用来将接口与实现分离的。
如:
class Tuxing { //我定义一个图形类来作为接口
public:
virtual void hua() const = 0; //绘制图形
virtual void cachu() const = 0; //擦出图形
// ....
};

class Zhengfangxing {//定义正方形作为实现
public:
void hua() const {
//实现画正方形的操作
}
void cachu() const {
//实现擦除正方形的操作
}
//实现其他接口
};

class Sanjiaoxing {//定义Sanjiaoxing作为实现
public:
void hua() const {
//实现绘制三角形的操作
}
void cachu() const {
//实现擦出三角形的操作
}
//实现其他操作
};

我的用户代码想使用这些图形,因为TuXing是接口,所以客户只需使用TuXing就行了!
//useTuxing函数使用户代码
void useTuxing(Tuxing *use) {
//use这个名字可以代表正方形,三角形等对象,
//这些对象都有一个共同的父类Tuxing
//这样这个名字代表的不同对象就可以以不同的方式
//实现同一消息
use->draw();
//....
use->cachu();
}
int main() {
Zhengfangxing one;
useTuxing(&one);
Sanjiaoxing two;
useTuxing(&two);
}

就是这样将接口与实现分离。我建议你买一些国外的书看看吧!
有问题加我扣
全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-03-11 03:24
不明白啊 = =!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯