覆写(Override)和重载(Overload)的比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了覆写(Override)和重载(Overload)的比较相关的知识,希望对你有一定的参考价值。

C# 中有覆写(Override)和重载(Overload),
我们该如何理解他们呢?

参考技术A 其实很本质的区别就是看函数特征:覆写(Override)的两个函数的函数特征相同,重载(Overload)的两个函数的函数名虽然相同,但函数特征不同。
函数特征包括函数名,参数的类型和个数。
Override 是在继承的时候,如果你写的函数与要继承的函数函数特征相同,那么,加上这个关键字,在使用这个子类的这个函数的时候就看不见父类(或超类)的函数了,它被覆盖掉了。
比如:Derived继承了Base,Base里面有void A(int a)
那么如果你Derived里面觉得A写得不好或不适合这个类,你想重新再写一遍A里的代码,那么就写override void A(int a)这样,原来的那个函数就被你新写的这个覆盖掉了。
Overload 是重载,就是说函数名相同,函数特征不同,系统会根据你提供的参数来调相应的函数。
比如:void A(int a)和void A(int a,int b)
如果你用的是A(1)那么调的是第一个,如果是A(1,1)那么调的是第二个。本回答被提问者采纳
参考技术B Override,一般指函数
Overload,可以是运算符

重载(Overload )和覆写(Override)的区别(理论)

概念:重载方法名相同,参数列表不同(参数类型及个数);覆写方法名、返回值类型、参数类型及个数完全相同

范围:重载在一个类中,覆写在继承关系中

限制:重载没有权限要求,覆写的方法的访问权限不能比父类更严格

以上是关于覆写(Override)和重载(Overload)的比较的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中继承时方法的重载(overload)与重写/覆写(override)

15-多态

第一节:重写(new)覆写(overwrite)和重载(overload)

java重载与覆写

重载和覆写有啥区别?

重写 Override