overload和override的区别

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

重载(overload)

   class Play : Word
    {
        public new  virtual void Run()
        {
            Console.WriteLine("重载父类Run的无参方法");
        }
        public new  virtual void Say()
        {
            Console.WriteLine("我能说会道,我是父类");
        }
        public new  virtual void Drink()
        {
            Console.WriteLine("因为我是父类,所以我会龙吸水");
        }

而代码中的word就是提供了一种机制。

覆写(override)

  public override void Work()
        {
            Console.WriteLine("努力工作,子类继承");
        }

覆写不能重写非虚拟方法和静态方法,重写的基方法必须是虚拟的、抽象或者重写的。上方代码则为抽象类。

你可能感兴趣的:(C#,控制台)