ベースクラスメソッドの書き換え、非表示(new,override)

4444 ワード

 public class Father

    {

        public void Write() {

            Console.WriteLine(" ");

        }

    }



    public class Mother

    {

        public virtual void Write()

        {

            Console.WriteLine(" ");

        }

    }



    public class Boy : Father

    {

        public new void Write()

        {

            Console.WriteLine(" ");

        }

    }



    public class Girl : Mother

    {

        public override void Write()

        {

            Console.WriteLine(" ");

        }

    }
        static void Main(string[] args)

        {

            Father father = new Boy();

            father.Write();



            Boy boy = new Boy();

            boy.Write();





            Mother mother = new Mother();

            mother.Write();



            Girl girl = new Girl();

            girl.Write();



            Console.ReadLine();

        }

出力:
親子
呼び出しの親メソッドを追加するには、次の手順に従います.
    public class Boy : Father

    {

        public new void Write()

        {

            base.Write();

            Console.WriteLine(" ");

        }

    }



    public class Girl : Mother

    {

        public override void Write()

        {

            base.Write();

            Console.WriteLine(" ");

        }

    }

 
出力:
父子母娘
プログラムの実行結果ではnewとoverrideは同じであることがわかります.