C#基本

[C#] メソッドをオーバーライドする

2021年12月11日

メソッドをオーバーライドするサンプルです。

サンプル

例として、Class1クラスのCalcメソッドをオーバーライドしてみます。

(親クラス Class1)


class Class1
{
  public virtual int Calc(int a, int b)
  {
    return a + b;
  }
}

メソッドに指定されている「virtual」キーワードがポイントです。

(子クラス Class2)


class Class2 : Class1
{
  public override int Calc(int a, int b)
  {
    return a * b;
  }
}

メソッドに指定されている「override」キーワードがポイントです。

 

例1)Class1のCalcを実行した場合


Class1 cls1 = new Class1();
int result = cls1.Calc(10, 20);

結果

result → 30

Class1のCalcメソッドは足し算した値が返ります。

例2)Class2のCalcを実行した場合


Class2 cls2 = new Class2();
int result = cls2.Calc(10, 20);

結果

result → 200

Calcメソッドはオーバーライドされているので、掛け算した値が返ります。

備考

  • オーバーライドは、全く同じメソッド名、引数、戻り値の場合が対象です。
  • オーバーライドされる側のメソッドには、virtual または abstractキーワードが必要です。
  • オーバーライドする側のメソッドには、overrideキーワードが必要です。

-C#基本