首页 新闻 会员 周边 捐助

在C#中方法重写和重载的区别

0
[已解决问题] 解决于 2018-09-12 14:39

在使用面向对象编程中怎样区分重写和重载?

悲伤掩饰微笑的主页 悲伤掩饰微笑 | 菜鸟二级 | 园豆:208
提问于:2018-09-10 16:14
< >
分享
最佳答案
0

给你平时自己理解的思路,看看是否对你有帮助,如果没有就当我胡说八道。
重写:重写重写就是要重新去写(实现),一个类中不可能两个定义一样的方法,所以,重新就是子类和父类的关系。重写就是子类对父类定义的方法重新实现一次;
重载:重载字面意思多次的意思,也就是同一个方法实现多个不同的逻辑,那么在同一个类中可以实现,其实现的原理是,方法名相同,参数的个数或者类型不同即可

奖励园豆:5
程序员修炼之旅 | 小虾三级 |园豆:976 | 2018-09-11 14:15
其他回答(4)
0

重写是 子类重写父类的方法;重载是方法名称相同,返回类型 或参数类型不同,叫做重载;可以去百度一下

IT小伙儿 | 园豆:11 (初学一级) | 2018-09-10 16:21

定义是这样可是上代码就蒙圈了

支持(0) 反对(0) 悲伤掩饰微笑 | 园豆:208 (菜鸟二级) | 2018-09-10 16:23

@悲伤掩饰微笑: 是不是重写 你看看类是否有继承父类 就可以了

支持(0) 反对(0) IT小伙儿 | 园豆:11 (初学一级) | 2018-09-10 16:24

@IT小伙儿: 在C#中继承的关键是?
在Java中我知道在C#中我就不是和清楚了

支持(0) 反对(0) 悲伤掩饰微笑 | 园豆:208 (菜鸟二级) | 2018-09-10 16:29
0

重写根据关键字区分,以C#为例,判断是否重写的时候,子类要有关键字override声明,父类方法必须声明为virtual或者是abstract。(网上去找个C#的栗子看一遍就懂了,看不懂就多看几遍)
重载就简单了,一个方法,多个参数,即为重载,如:
public int Fn(int a) { //TODO }
public int Fn(int a,int b) { //TODO }
上面fn就是一个具备重载的方法,使用的时候你可以传个a,它就进第一个方法,传a和b两个参数,它就进下面那个方法。

顾星河 | 园豆:7281 (大侠五级) | 2018-09-10 18:00
0

为什么总是喜欢拿2个不相干的关键字.放到一起对比.有什么不同.
他们明明一点相同都没有好吗?
而且学习的时候.你要给每个关键定用文字描述他的定义.这个东西在书上就有.
你吧2个关键字的定义放到一起对比一下.而不是吧2个关键字放到一起对比..

吴瑞祥 | 园豆:29449 (高人七级) | 2018-09-10 20:21
1

重载,就是一个类里,多个重名的方法(签名不一样)
重写,就是重写 ,有个关键字 override
这俩没什么可以比较的

可是我爱你啊 | 园豆:130 (初学一级) | 2018-09-11 17:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册