溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#如何實現方法的重寫

發布時間:2021-11-22 15:13:35 來源:億速云 閱讀:208 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關C#如何實現方法的重寫的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

什么是重寫?

“重寫”父類方法就是修改它的實現方式或者說在子類中對它進行重新編寫。

為什么要重寫父類的方法?

通常,子類繼承父類的方法,在調用對象繼承方法的時候,調用和執行的是父類的實現。但       

是,有時候需要對子類中的繼承方法有不同的實現方式。

如何重寫?

    

a.重寫父類的方法要用到override關鍵字(具有override關鍵字修飾的方法是對父類中同名方法的新實現);

b.要重寫父類的方法,前提是父類中該要被重寫的方法必須聲明為virtual、override或者是abstract類型,不能重寫static方法和非虛方法。為什么 override 也可以重寫呢?因為基類中的override實際上是對基類的基類進行的重寫,由于繼承可傳遞,所以也可以對基類中override 的方法進行重寫。

c. override 聲明不能更改 virtual 方法的可訪問性,重寫屬性聲明必須指定與繼承屬性完全相同的訪問修飾符、類型和名稱。給父類中要被重寫的方法添加virtual關鍵字表示可以在子類中重寫它的實現。(注意:C#中的方法默認并不是 virtual類型的,因此要添加virtual關鍵字才能夠被重寫);

d.virtual關鍵字用于將方法定義為支持多態,有virtual關鍵字修飾的方法稱為“虛擬方法”(虛方法).  

   

        [訪問修飾符] virtual [返回類型] 方法名(參數列表)
        {
              //虛擬方法的實現,該方法可以被子類重寫
        }

 下面創建控制臺應用程序: 

 namespace inheritDemo2
 {
   class Employee
   {
      public virtual void EmpInfo()
      {
          Console.WriteLine("用virtual關鍵字修飾的方法是虛擬方法");
      }
    }
    
   class DervEmployee : Employee
   {
      public override void EmpInfo()
      {
          base.EmpInfo();//base關鍵字將在下面拓展中提到
          Console.WriteLine("該方法重寫base方法");
      }
   }
   
   class Test
   {
        static void Main(string[] args)
       {
          DervEmployee objDervEmployee = new DervEmployee();
          objDervEmployee.EmpInfo();
            
          //注意:objDervEmployee派生類的實例是賦給Employee類的objEmployee的引用,
          //所以objEmployee引用調用EmpInfo()方法時 還是調用DervEmployee類的方法
          Employee objEmployee = objDervEmployee;
          objEmployee.EmpInfo();
        }
    }
 }

 拓展: 

     1.base關鍵字用于從子類中訪問父類成員。即使父類的方法在子類中重寫,仍可以使用base關       

       鍵字調用。

     2.而且,在創建子類實例時,可以使用base關鍵字調用父類的構造函數。

     3.使用base關鍵字只能訪問父類的 構造函數、實例方法或實例屬性,而不能訪問基類的靜       

       態方法。

感謝各位的閱讀!關于“C#如何實現方法的重寫”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女