Minaminの日記

趣味を記事にしてる。

C#のoverrideキーワードについての話。(関数のオーバーライド)、「virtual」「base」

f:id:Minamin1234:20210816162038p:plain

こんにちは。みなみんです。
C#入門シリーズの続きです。

 

今回は、「override」キーワードについて記事にしました。

目次

 

関数のオーバーライド

前回の記事でクラスの継承について取り上げました。

今回の「関数のオーバーライド」も同じような感じです。

 

minamin37345.hatenadiary.com

関数のオーバーライドとは?

すでに継承されたクラスの関数の処理内容を追加で定義する事です。

関数のオーバーライドの方法

早速、サンプルを見てもらいましょう。(Gist)

関数のオーバーライドを行うには、必ずオーバーライドする前の関数は「virtual」キーワードを付加しておきます。

public virtual void Func()
{

}

そして、オーバライドを行うには、「override」キーワードを付加します。

public override void Func()
{

}

引数の含む関数をオーバーライドするには、引数もきちんと指定してあげます。

public virtual void Func(string Text,int Num)

{
//省略
}

public override void Func(string Text,int Num)
{
base.Func(Text,Num);//引数の一致
//新しく追加する処理
}

また、オーバーライド時に従来の関数を使いたい時は「base」キーワードを使います。
上記のように、引数も一致させます。

base.Func()

 

オーバーライドとオーバーロード

オーバーライドとオーバーロードは違う。

今回は「オーバーライド」について説明しました。
似たようなワードで「オーバーロード」というワードがあります。
オーバーロード」とは、関数の多重定義の事です。
同じ関数名だが、引数が異なる関数を定義する事です。

ただし、C#言語において「override」というキーワード(予約語)はあるものの、
「overload」というキーワードはありません。

コードを書く上で、間違える事は無いかと。

 

 

この記事に誤りがあるかもしれません。その辺はご了承ください。

本記事で紹介されている方法・手法はあくまでも個人的なものです。