C# 中关于重载与重写的区别及用法

Posted zjbd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 中关于重载与重写的区别及用法相关的知识,希望对你有一定的参考价值。

1、重载(overload): 在同一个作用域(一般指一个类)的两个或多个方法函数名相同,参数列表不同的方法叫做重载,它们有三个特点(俗称两必须一可以):

  • 方法名必须相同
  • 参数列表必须不相同
  • 返回值类型可以不相同

例如:

public void Sleep()

    Console.WriteLine("Animal睡觉");

public int Sleep(int time)

    Console.WriteLine("Animal0点睡觉", time);
    return time;


2、重写(override):子类中为满足自己的需要来重复定义某个方法的不同实现,需要用 override 关键字,被重写的方法必须是虚方法,用的是 virtual 关键字。它的特点是(三个相同):

  • 相同的方法名
  • 相同的参数列表
  • 相同的返回值

如:父类中的定义:

public virtual void EatFood()

    Console.WriteLine("Animal吃东西");

子类中的定义:

public override void EatFood()

    Console.WriteLine("Cat吃东西");

以上是关于C# 中关于重载与重写的区别及用法的主要内容,如果未能解决你的问题,请参考以下文章

C#简述override和overload的区别

重写(覆盖,Override)和重载(Overload)的区别

nginx那点事儿——nginx中关于rootalias及localtionproxy_pass后面是否有/的区别

方法重载和重写的区别

覆盖重写与重载的区别

覆盖重写与重载的区别