Just another WordPress site

派生クラスでのメソッドのオーバーライド

2016.06.03

派生クラスでのメソッドのオーバーライド

基本クラスのメソッドやプロパティを派生クラスで機能の追加、変更を行うことをメソッドのオーバーライドと呼びます。

オーバーライドを行なう基本となるクラスにはvirtualキーワードをあらかじめ付けておきます。

以下に例を挙げます。

[アクセス修飾子] virtual void メソッド名(引数, …)

{

   …

}

派生クラス内でオーバーライドしたメソッドやプロパティにはoverrideキーワードを付けます。

また、引数の数や並び、データ型は派生元となるメソッドと一致させる必要があります。

以下に例を挙げます。

[アクセス修飾子] override void メソッド名(引数, …)

{

   …

}


namespace WindowsFormsApplication1

{

   public partial class Form1 : Form

   {

       public Form1()

       {

           InitializeComponent();

       }



       private void button1_Click(object sender, EventArgs e)

       {

           SampleB sb = new SampleB();

           sb.message();

       }

   }



   public class SampleA

   {

       protected int a;

       protected int b;



       public SampleA()

       {

           a = 1;

           b = 2;

       }



       public int A

       {

           get 

           {

               return a;

           }

       }



       public int B

       {

           get 

           {

               return b;

           }

       }



       public virtual void Message() {

           MessageBox.Show("SampleAクラスのメソッドです.");

       }



   }



   public class SampleB : SampleA {

       public override int Message() {

           base.Message();

           MessageBox.Show("オーバーライドされたSampleBクラスのメソッドです.");

       }

   }

}



関連記事