请各位高手讲讲多态与重载的区别和作用好吗?

wanwendong 2003-10-09 09:50:57
请各位高手讲讲多态与重载的区别及作用?
...全文
194 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbspy 2003-10-21
  • 打赏
  • 举报
回复
mark
wanwendong 2003-10-13
  • 打赏
  • 举报
回复
重写与重载都体现了多态:
重写:是相对于父类的虚函数而言的,其对于不同的派生类有不同的实现,其多态体现在运行
阶段,指向父类的指针指向不同的对象就会调用不同的函数,其针对的是父类的虚函数
重载:是指在一个函数内部,同名但不同参数的多个函数,其多态性体现在编译阶段,其针对
的是一般的成员函数
clwww 2003-10-12
  • 打赏
  • 举报
回复
重载主要的指函数的级别
即相同的函数的名称,参数的差异包括参数的类型和参数的个数等

而多态主要是指类的级别
特别是指继承类之间的关系:
继承类之间可能有相同的处理函数
比如对同一的消息继承类之间各类会有不同的处理
多态主要是通过虚函数实现
掌握了虚函数也就对多态有了充分的理解
valentine2001 2003-10-10
  • 打赏
  • 举报
回复
重载不是多态的一种吗?
你没有发现很多的构造函数不止一个,不都是重载么?!
LA003 2003-10-10
  • 打赏
  • 举报
回复
学习~~ 有没有具体的事例?^@-@^
lovered 2003-10-10
  • 打赏
  • 举报
回复
多态是不同类中实现相同方法
重载可以理解为两个不同的方法

另外我认为重载跟多态没什么关系

望指正
sinomesh 2003-10-10
  • 打赏
  • 举报
回复
长见识
sgsh51 2003-10-10
  • 打赏
  • 举报
回复
重载和重写都是多态的表现,(重载和重写是完全不同的)
其中重载比较好理解就是:多个同名但不同参数的函数;
而重写,也就是在基类中定义一个虚拟方法,继承该基类的派生类去重写这个方法,
主要作用就是可以让基类来调用派生类的方法。
Godshow 2003-10-10
  • 打赏
  • 举报
回复
学习!
wanwendong 2003-10-10
  • 打赏
  • 举报
回复
能否这样理解望各位高手指正:

1、重载是多态的一种

2、运行的多态可以通过重载父类的虚函数来实现,那么就可以根据不同的对象,来决定到底是调用基类还是父类的函数,从而对不同的对象产生不同的作用

3、编译时的多态则是存在多个同名但不同参数的函数,根据参数的类型及数量来决定调用那一个函数
风轻扬 2003-10-09
  • 打赏
  • 举报
回复
多态是一个动作的不同表现形式,比如drive(),如果是自行车则表现为“骑”,需要做的就是通过车把控制自行车的前进方向,而如果是汽车则表现为“开”,所要做的就是握好方向盘控制汽车的前进方向。
而重载则是同一个方法在参数不同的情况下的不同表现,比如drive(string drivename)和drive(string drivename,string driveplace)所表现的动作肯定有所不同。
个人观点,理解也不透,说得也不好,仅供参考
win32c 2003-10-09
  • 打赏
  • 举报
回复
考虑这样一种情况:当一个女孩给你抛媚眼的时候,她不是你喜欢的那种类型,你的一种感觉很可能就是“恶心”;这时他男朋友发现了,她(为了挑起他的醋意)也给他抛了个媚眼。她男友的感觉必定是酸溜溜地。这就是多态——调用同名(挑逗)但实现方式不同的操作(方法)。在编程中,就是对于相同消息,作用在不同的对象做出不一样的操作或返回不一样的结果。
//编译时多态:通过重载函数实现;
//运行时多态:通过虚函数
skykevin 2003-10-09
  • 打赏
  • 举报
回复
多态是对象呈现出的问题,重载是解决该问题的方法。
foryijian 2003-10-09
  • 打赏
  • 举报
回复
重载是多态的一种,

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧