c# 隐藏函数

       如果签名相同的方法在基类和派生类中都进行了声明,但是该方法没有分别声明为virtual和override,派生类就会隐藏基类方法。(要使用new关键字进行声明)

    class Enemy
    {
        public void Move()
        {
            Console.WriteLine("这是调用的Enemy.Move()");
        }
    }
  //派生类(在派生类中把基类同名的方法隐藏掉了)
  class Boss:Enemy
    {
        public new void Move()
        {
            Console.WriteLine("这是调用的Boss.Move()");
        }    
    }
    class Program
    {
        static void Main(string[] args)
        {
            Enemy boss1 = new Boss();
            boss1.Move();

            Boss boss2 = new Boss();
            boss2.Move();

            Enemy enemy = new Enemy();
            enemy.Move();

            Console.ReadKey();
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_40323256/article/details/82975649