C 的Class的幾個修飾符

2021-06-17 17:11:46 字數 1599 閱讀 1589

none or internal     類只能在當前的工程中訪問

public                    類可以在任何地方訪問

abstract or internal abstract   類可以在當前的工程中訪問,不能例項化,只能繼承

public abstract     類可以在任何地方訪問,不能例項化,只能繼承

sealed or internal sealed    類只能在當前的工程中訪問,只能例項化,不能繼承

public sealed     類可以在任何地方訪問,只能例項化,不能繼承

更為全面的解釋(c#中的修飾符):

1、用於關鍵字class的修飾符

1)internal 預設修飾符,指定類為內部的,只有當前工程中的**才能訪問它

2)public 指定類為公共的,其它工程中的**也可以訪問它

3)abstract 指定類為抽象的,不能例項化,只能繼承,可以有抽象成員

4)sealed 密封的,不能繼承

其中,internal和public是一對互斥關係,abstract和sealed是一對互斥關係,兩對之間可以互相搭配使用。

預設類定義如下:

class a{}即相當於internal class a{},internal通常是省略的。

2、用於關鍵字inte***ce的修飾符

1)public和private 這對訪問修飾符和關鍵字class的定義是一樣的,由於介面的公共特性通常使用public

2)abstract和sealed 這對修飾符不能在介面中使用,因為它們對介面毫無意義

當定義派生類時,如果同時有基類和介面,那麼先寫基類再寫介面,用逗號分開,只能繼承乙個基類但可以有多個介面,如:

class derivedclass:baseclass,iinte***ce1,iinte***ce2

介面定義和繼承如下:

public inte***ce imyinte***ce:iinte***ce1,iinte***ce2

3 、用於類成員(包括字段、屬性、方法)的修飾符

1)public--成員可以由任何**訪問

2)private--成員只能由本類中的**訪問(預設值)

3)internal--成員只能由定義它的工程(裝配件)內部的**訪問

4)protected--成員只能由類或派生類中的**訪問

最後兩個關鍵字可以合併使用,即protected internal,只能由工程(裝配件)中類和派生類的**訪問。此外與以上關鍵字並行的還有static,表示類的靜態成員,而不是類的例項成員。欄位還可以定義為realonly,只能在定義時或建構函式中賦值並賦值後不可更改。

4、類方法還有另外的關鍵字定義

1)virtual--方法可以重寫

2)abstract--方法必須重寫(只用於抽象類中,如果類方法定義了abstract則class也必須追加abstract)

3)override--方法過載了乙個基類方法(如果方法被過載則必須使用該關鍵字)

4)extern--方法定義在其他地方

另:派生類的類方法還可以使用new來隱藏基類方法;通過this指向當前類例項引用,通過base關鍵字指向基類例項引用。

C 修飾符 類修飾符和成員修飾符

c 修飾符之類修飾符 public internal partial abstract sealed static internal 本程式集內的成員可以訪問。partial 部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中。c 修飾符之成員...

C 的修飾符

類的訪問修飾符主要有兩個 internal和public,預設為internal 這裡說的類包括介面 結構體 列舉 委託。類成員的訪問修飾符有四個 public private internal protected 指定了六個可訪問性級別 public private internal protec...

C 的類修飾符和成員修飾符

一 類修飾符 類修飾符 public internal partial abstract sealed static new protected private protected internal 1 public 訪問不受限制的,所有的本程式集以及其他的程式集裡面的類都能夠訪問 2 intern...