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

 我来答
帐号已注销
推荐于2018-05-06 · TA获得超过3954个赞
知道大有可为答主
回答量:1636
采纳率:77%
帮助的人:1238万
展开全部
多态是类型理论的一个概念。
意思是:
一个名字可以代表许多不同的对象,只要这些对象都有共同的父类,这样这个名字代表的不同对象就可以以不同的方式来响应同一消息。

这是抽象的解释,我觉得实际上多态就是用来将接口与实现分离的。
如:
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);
}

就是这样将接口与实现分离。我建议你买一些国外的书看看吧!
有问题加我扣
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式