溫馨提示×

溫馨提示×

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

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

C#中繼承的知識點總結

發(fā)布時間:2021-08-25 17:44:59 來源:億速云 閱讀:148 作者:chen 欄目:編程語言

本篇內容主要講解“C#中繼承的知識點總結”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#中繼承的知識點總結”吧!

C#的繼承與 C++ 等語言一個重要的不同,就是只能從一個類中繼承,這是開發(fā)者在權衡了從多個類C#繼承的優(yōu)勢與劣勢作出的結果。不過,可以從接口繼承。另外,繼承可傳遞。構造函數(shù)和析構函數(shù)不能被繼承。

初始化基類

可以在派生類構造函數(shù)中添加初始化基類的代碼。

public class BaseClass  {      private int i = 0;            public BaseClass(int index)      {          i = index;      }  }    public class DerivedClass : BaseClass  {      private int j = 0;            public DerivedClass(int index) : base(index)      {          j = index;      }  }

注意派生類構造函數(shù)中的 : base(index)。將先調用基類的構造函數(shù)。

另外,相對于 this,要訪問基類的成員,可以使用 base,當前這不能用在靜態(tài)方法中,因為靜態(tài)方法沒有實例。

C#繼承中的重寫

◆virtual 用在基類中,指定一個虛方法(屬性),表示這個方法(屬性)可以重寫。

◆override 用在派生類中,表示對基類虛方法(屬性)的重寫。

以上的基類和派生類都是相對的。B 是 C 的基類,也可以是 A 的派生類,B 中既可以對 A 中的 virtual 虛方法用 override 重寫,也可以指定 virtual 虛方法供 C 重寫。

不能重寫非虛方法或靜態(tài)方法。重寫的基方法必須是 virtual、abstract 或 override 的。為什么 override 也可以重寫呢?因為基類中的 override 實際上是對基類的基類進行的重寫,由于繼承可傳遞,所以也可以對基類中 override 的方法進行重寫。

◆override 聲明不能更改 virtual 方法的可訪問性。override 方法和 virtual 方法必須具有相同的訪問級別修飾符。
不能使用修飾符 new、static、virtual 或 abstract 來修改 override 方法。

◆重寫屬性聲明必須指定與繼承屬性完全相同的訪問修飾符、類型和名稱,并且被重寫的屬性必須是 virtual、abstract 或 override 的。

public class BaseClass  {      public virtual string GetString()      {          return "這是一個虛方法。";      }  }    public class DerivedClass : BaseClass  {      public override string GetString()      {          return "這是重寫了的方法。";      }  }

可以看出,重寫與前面講的重載是有區(qū)別的。

C#繼承中的方法重載

方法重載并不是類繼承中的內容,只是它容易和重寫等混淆,所以放在一起談談。

什么是重載呢,舉個例子,我們在應用 System.IO.File.Create() 方法時,往往可以選擇幾種參數(shù),這是就方法的重載,同一個作用域、同一個方法名稱、具有不同的參數(shù)類型或參數(shù)個數(shù),在調用方法時,根據(jù)參數(shù)自動決定使用哪一個方法。

示例

public string GetString()  {      //...  }   public string GetString(int index)  {      //...  }   public string GetString(string userName)  {      //...  }

在C#中,方法參數(shù)沒有默認值,可通過重載來實現(xiàn)默認值功能。

到此,相信大家對“C#中繼承的知識點總結”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

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

AI