永发信息网

C#中简述方法覆盖(override)与重载(overload)的异同

答案:3  悬赏:10  手机版
解决时间 2021-03-10 06:37
  • 提问者网友:末路
  • 2021-03-09 15:41
C#中简述方法覆盖(override)与重载(overload)的异同
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-03-09 16:04
override(重写)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。
全部回答
  • 1楼网友:千夜
  • 2021-03-09 17:28
方法覆盖(override):是子类覆盖父类中的方法,要求方法名、参数、返回值完全相同,连访问修饰也为可访问级别。 重载(overload):多为一个方法类,方法名称相同,参数个数或者类型不同。
  • 2楼网友:白昼之月
  • 2021-03-09 16:11
overload,比如有void fun(int a), void fun(string a),那么调用的时候用fun(1)或fun("a"),会找到对应的方法,这就是overload override,比如父类people有个虚方法eat(), 子类child也有个方法 eat(),他override了people的eat,所以如果用child.eat(),调用的是child的eat 其实是很不同的概念,只不过字面有点像
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯