C#的Class的幾個修飾符


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

Public                    類可以在任何地方訪問

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

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

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

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

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

1)internal 默認修飾符,指定類為內部的,只有當前工程中的代碼才能訪問它

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

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

4)sealed 密封的,不能繼承

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

默認類定義如下:

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

 

2、用於關鍵字interface的修飾符

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

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

 

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

class DerivedClass:BaseClass,IInterface1,IInterface2

{}

接口定義和繼承如下:

public interface IMyInterface:IInterface1,IInterface2

{}

 

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關鍵字指向基類實例引用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM