1. 程式人生 > >c# 隱藏函式

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();
        }
    }