メソッドをオーバーライドするサンプルです。
サンプル
例として、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キーワードが必要です。