重写
用override关键字重新实现基类中的虚方法,当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。三同一不同:同名、同参、同返、不同类,执行的方法体不同但返回的结果类型相同
class Program
{
static void Main(string[] args)
{
Dog dog = new Dog();
dog.Say();
}
public class Animal //父类
{
public virtual void Say() //父类中的方法用virtual、abstract声明
{
Console.WriteLine("Oh~Oh~Oh");
}
}
public class Dog : Animal //子类
{
public override void Say() //重写父类中关键字声明的方法
{
Console.WriteLine("Wang~Wang~Wang");
}
}
}

重载
一个类中的方法与另一个方法同名,但是参数列表不同,这种方法称之为重载方法。简易记法: 两同一不同:同类,同名(方法名),不同参。返回结果的类型没有必需要求(可同可异),实例效果如下:
class Program
{
static void Main(string[] args)
{
string s = null;
show(s);
object a = "123";
show(a);
}
static void show(string s)
{
Console.WriteLine("string");
}
static void show(object o)
{
Console.WriteLine("object");
}
}
}

总结

重写:有相同的方法名 参数列表 但是返回值不同 ,用override关键字续写基类 最后执行派生类
重载:同类,同名(方法名),不同参。返回结果的类型没有必需要求(可同可异),根据参数去决定执行哪个方法