1. 程式人生 > >【C#基礎】關於類(繼承)

【C#基礎】關於類(繼承)

1、繼承:面向物件程式設計中提供的子類可以沿用父類某些行為和特徵的一種方式。

      當一個類繼承另一個類時,被繼承的類稱為父類或基類;該類被稱為子類或派生類。      

【特點】:

       ⑴、傳遞性;(即類B繼承類A,類C繼承類B,故類C同時擁有類A和類B的成員。)

       ⑵、相對性;(當描述一個類時,不能簡單的定義該類是父類還是子類,而需要相對於其他類來言。)

       ⑶、單根性。(c#明確規定一個類只能有一個父類,但可以有多個子類。)

【注意】:

1、若一個類沒有繼承任何類,則自動繼承Object類。(Object類是一切類的根類,它定義了所有類最基本的方法和屬性)

2、子類繼承了父類的屬性和方法,但是子類並沒有繼承父類的私有欄位

3、子類並沒有繼承父類的建構函式,但是。子類會預設的呼叫父類無引數的建構函式,建立父類物件,讓子類可以使用父類中的

成員。所以,如果在父類中重新寫了一個有引數的建構函式之後,那個無引數的就被幹掉了,子類呼叫不到,所以子類會報錯。

解決辦法:

1)、在父類中重新寫一個無引數的建構函式。

2)、在子類中顯示的呼叫父類的建構函式,使用關鍵字:base()

2、base和this關鍵字:(不能在靜態方法中使用)

  ⑴、base關鍵字:用於在子類中指代其父類物件的引用,其含義類似於“父類”。

    【語法】:base(引數列表):用於在子類中呼叫父類中的構造方法;

          base.成員名稱:用於在子類中呼叫父類中的成員。

  ⑵、this關鍵字:用於在類中指代類的物件的引用,其含義類似於“自己”。

    【語法】:this.成員名稱:用於在本類中呼叫自己的成員。

3、訪問修飾符protected:(專門用於繼承關係的訪問修飾符)僅用於在子類中訪問父類的成員,訪問範圍為類自身及其子類。