重写与重载区别

 

 重写:一般存在派生类(子类)继承基类(父类),重写父类方法

  重载:同一个类里面类名称相同,参数不同(参数类型和参数个数)。

 

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

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

// 如:父类中的定义:

public virtual void EatFood()
{
    Console.WriteLine("Animal吃东西");
}

// 子类中的定义:

public override void EatFood()
{
    Console.WriteLine("Cat吃东西");
}

  注:virtual 定义虚方法。

 

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

  • 方法名必须相同
  • 参数列表必须不相同
  • 返回值类型可以不相同
public void Sleep()
{
    Console.WriteLine("Animal睡觉");
}
public int Sleep(int time)
{
    Console.WriteLine("Animal{0}点睡觉", time);
    return time;
}