C 類的繼承

2022-01-24 09:39:07 字數 2133 閱讀 9295

本節課將介紹c#中的繼承,其目的如下:

1.基類的實現

2.類的繼承

3.在派生類中初始化基類

4.如何呼叫基類成員

5.如何覆蓋基類成員

繼承是物件導向程式設計的主要特徵之一,它可以讓你重用**,可以節省程式設計的時間。

1.清單8-1 繼承: baseclass.cs

using system;

public class parentclass

public void print()

}public class childclass : parentclass

public static void main()

} output:

parent constructor.

child constructor.

i'm a parent class.

說明 清單8-1演示了兩個類的用法。上面的乙個類名為parentclass, main函式中用到的類名為childclass。要做的是建立乙個使用父類parentclass現有**的子類childclass。

1.首先必須說明parentclass是childclass的基類。

這是通過在childclass類中作出如下說明來完成的:"public class childclass : parentclass"。在派生類識別符號後面,用分號":" 來表明後面的識別符號是基類。c#僅支援單一繼承。因此,你只能指定乙個基類。

2.childclass的功能幾乎等同於parentclass。

因此,也可以說childclass "就是" parentclass。在childclass 的main()方法中,呼叫print() 方法的結果,就驗證這一點。該子類並沒有自己的print()方法,它使用了parentclass中的 print()方法。在輸出結果中的第三行可以得到驗證。

3.基類在派生類初始化之前自動進行初始化。

注意到清單8-1的輸出結果。parentclass 類的建構函式在childclass的建構函式之前執行。

2.清單 8-2. 派生類同基類進行通訊: basetalk.cs

using system;

public class parent

public parent(string mystring)

public void print()

}public class child : parent

public void print()

public static void main()

} output:

from derived

child constructor.

i'm a parent class.

i'm a child class.

i'm a parent class.

說明 1.派生類在初始化的過程中可以同基類進行通訊。

清單8-2演示了在子類的建構函式定義中是如何實現同基類通訊的。分號":"和關鍵字base用來呼叫帶有相應引數的基類的建構函式。輸出結果中,第一行表明:基類的建構函式最先被呼叫,其實在引數是字串"from derived"。

2.有時,對於基類已有定義的方法,打算重新定義自己的實現。

child類可以自己重新定義print()方法的實現。child的print()方法覆蓋了parent中的 print 方法。結果是:除非經過特別指明,parent類中的print方法不會被呼叫。

3.在child類的 print() 方法中,我們特別指明:呼叫的是parent類中的 print() 方法。

方法名前面為"base",一旦使用"base"關鍵字之後,你就可以訪問基類的具有公有或者保護許可權的成員。 child類中的print()方法的執行結果出現上面的第三行和第四行。

4.訪問基類成員的另外一種方法是:通過顯式型別轉換。

在child類的main()方法中的最後一條語句就是這麼做的。記住:派生類是其基類的特例。這個事實告訴我們:可以在派生類中進行資料型別的轉換,使其成為基類的乙個例項。清單8-2的最後一行實際上執行了parent類中的 print()方法。

小結 你已經了解了如何建立乙個派生類及其基類。你可以對基類成員進行初始化,以及如何對方法進行隱式或者顯式的呼叫。你也了解了派生類是其基類的乙個特例。

C 類的繼承

繼承是物件導向程式設計的主要特徵之一,它可以讓你重用 可以節省程式設計的時間。1.object類的作用。object object為別名 是所有類的基類,在c 中所有的類都直接或間接繼承於object,如果在乙個類的宣告中沒有指定它繼承於哪個類則是繼承於object類。2.類繼承的實現。以下定義兩個...

C 類的繼承

複習下c 類的繼承,先看下面例子 class a public可以在類內部 派生類 類的例項訪問 protected void test2 protected可以在類內部 派生類訪問 private int m a m a為private,只能在本類使用 class b public a class...

c 類的繼承

類的繼承有三種方式 1 公有繼承 2 私有繼承3 保護繼承 基類中的私有成員在派生類中時隱藏的,只能在基類中訪問 派生類中的成員不能訪問基類中的私有成員,但是可以訪問基類中的公有成員和保護成員。派生類從基類公有繼承時,基類的公有成員和保護成員仍然是派生類中的公有成員和保護成員 私有繼承時,公有成員和...