C#初級プログラミング

C#初心者のための基礎!override(オーバーライド)の使い方を解説#27

Udemyで公開しているC#のコースを1つ無料でプレゼントしています。こちらから確認してください。

override(オーバーライド)とは?

override(オーバーライド)とは、継承関係にあるクラスで派生クラスが基底クラスのメソッドを上書きすることを言います。

override(オーバーライド)ができると何がいいの?

継承関係にあるとき、派生クラスは基底クラスの機能をフル機能使う事ができますが、派生クラスごとに、微妙に異なる結果や、全く異なる結果を返却したくなる仕様がよく存在します。

すべての派生クラスで同じ結果を返す場合は問題ありませんが、一部の派生クラスでは異なる処理をさせたいという場合に、このオーバーライドをすることによって、任意の処理に変更することができます。

書き方

基底クラスではvirtualキーワードを使って、「このメソッドは派生クラスで、書き換えてもいいですよ」という意思表示をします。

派生クラスでは、基底クラスでvirtualキーワードがついているメソッドに対して、overrideキーワードを使って書き換えることが可能です。もちろん、書き換える必要のない場合は記述する必要はありません。

サンプルコード

次の例では、基底クラスのGetDataメソッドを書き換える方法を示しています。

派生クラスでGetDataを上書きする場合は、public overrideに続けてスペースを打ち込むと、インテリセンスでGetDataを選択することができ、GetDataを選択した状態でTABキーを打ち込むと、メソッドが自動生成されます。その場合return base.GetData()と作成され、そのままの状態であれば、overrideをしても、しなくても、基底クラスの値が返却されることになることを示しています。上書きする場合は、何かしらの変更を行います。もちろん不要であれば、base.GetData()の記述を削除しても構いません。

Udemyで公開しているC#のコースを1つ無料でプレゼントしています。こちらから確認してください。