C 學習筆記 三

2021-04-16 07:56:08 字數 2019 閱讀 1246

c#學習筆記(三)

by heiyeluren

學習《visual c#入門經典》學習筆記

1. 類的定義和繼承

定義乙個類使用class關鍵字:

class class1

預設定義的類是只能本工程中的其他類和函式才能訪問的,我們也可以使用顯式的方式定義我們的類是私有的:

internal class class1

加入我們要讓別的工程也能夠訪問我們的類,我們就定義成公共的,別的工程也能訪問了:

public class class1

同時我們也能定義類為抽象類,只能繼承,不能例項化:

public abstract class class1

我們也能夠定義類只能例項化,不能繼承:

public sealed class class1

乙個類繼承抽象類,那麼所有抽象類的成員都將繼承,另外,相應的訪問方式必須是符合規則的,乙個公共的基類,派生類能夠是公共的,也

可以是私有的,一下定義合法:

public class mybase

internal class myclass : mybase

但是如果是個私有的基類,那麼派生類就只能是私有的,一下定義是非法的:

internal class mybase

public class myclass : mybase

如果沒有任何基類,那麼是繼承的就是基類system.object,它在c#中是很核心的基類,基本上我們所有基類的根類就是它,。

同時我們的也能夠繼承介面,對介面的成員進行實現:

public class myclass : imyinte***ce

如果乙個類繼承的是介面的成員,那麼所有介面的成員,都必須在類中進行實現,如果不想給介面的成員進行實現,可以使用「空」,就是函

數沒有任何**。

如果我們要同時繼承基類和介面,那麼基類就必須在介面前面,一下定義是非法的:

public class myclass : imyinte***ce, mybase

正確的指定介面和基類的方法如下:

public class myclass : mybase, imyinte***ce

當然,我們也能夠同時指定多個介面:

public class myclass : mybase , imyinte***ce, imysecondinte***ce

2. 介面的定義和繼承

宣告乙個介面,跟宣告乙個類差不多吧,使用inte***ce為關鍵字:

inte***ce imyinte***ce

同樣介面也有私有和公共訪問的方式:

public inte***ce imyinte***ce

但是abstract和sealed不能用,因為介面本來就是用來繼承的,但是無法例項化。

介面同樣也能繼承,而且介面不象類,只有乙個基類,介面繼承可以有多個介面:

public inte***ce imyinte***ce : imybaseinte***ce, imybaseinte***ce2

介面繼承和system.object的方式比較類似,就是通過介面的多台性來確定使用那個介面,介面不能例項化。

3. 類和介面的實現例子

// 定義介面1

public inte***ce imybaseinte***ce

// 定義介面2

internal inte***ce imybaseinte***ce2

// 同時繼承介面1和介面2

internal inte***ce imybaseface: imybaseinte***ce, imybaseinte***ce2

// 繼承基類和介面1

internal sealed class mycomplexclass : myclass, imyinte***ce

// 定義可以執行的類

class class1}}

基本上了解的就這麼多了,呵呵~~~~下次再聊點別的!!

writetime: 2004-12-29 21:00

C 學習筆記(三)

c 運算子過載 1 過載運算子的運算順序和優先順序不變,但引數和返回型別是可以重新說明的。2 c 規定,運算子中,引數說明都是內部型別的,不能過載,如 int operator int,int 3 c 還規定了 這五個運算子不能過載,也不能創造新的運算子,如 4 c 規定 這四種運算子必須為成員形式...

C 學習筆記(三)

chapter 3 函式和類的自頂向下設計 1 乙個程式的開發過程 1.問題規範 2.分析 資料需求 3.設計 初始演算法 演算法精化 4.實現 5.測試 2 重要工具 結構圖 3 分析,設計程式時,甚至對任何問題來說,我們都要由大到小,層層分解,由乙個大問題分割成多個相關 的小問題,一口乙個蛋糕是...

C 學習筆記(三)

attributes field modifiers type variable declarators 域的修飾符field modifiers可以是 靜態域和非靜態域 下面的例子清晰的反映了二者之間的區別 域的初始化 如果在類中,沒有顯式的對域進行初始化,系統將賦予其乙個預設值。域的預設初始化分...