C#中重载(overload)和覆写(override)的区别

时间:2021-08-09 09:22:57

1.重载(overload)
  用于同一类中或是父子关系类中。它提供了一种机制,相同的函数名通过不同的返回值类型及参数来表示区分的机制。
2.覆写(override)
  使用override修饰符修饰方法、属性、索引和事件。它不能重写非虚拟方法或静态方法,重写的基方法必须是虚拟的、抽象或者重写的。也就是说,用override重写的基方法的必须是virtual、abstract或者override。
3.本质区别:
  覆写(override)的基方法和覆写方法两个函数的函数特征相同;重载(overload)的两个函数函数名虽然相同,但是函数特征不同。
  (PS:函数特征包括函数名、参数的个数和类型)