天天看點

C#中的通路修飾符

static: 靜态修飾符

 1.使用static修飾符聲明屬于類型本身而不是屬于特定對象的靜态成員

 2.如果使用static修飾類,則他的所有成員都必須為靜态成員

 3.使用static修飾的函數,隻需要通過類型名稱來引用它,不能通過執行個體來引用靜态成員函數

readonly:隻讀通路修飾符

 1.被readonly修飾的屬性隻能讀取,不能更改屬性值

public:共有通路修飾符

 1.公共通路是允許最高的通路級别,能夠在一個類中,通過執行個體化另一個類,然後通路它的成員

protected:成員通路修飾符

 1.執行個體化派生類,能夠通過執行個體化的派生類通路到基類的成員

private:私有通路修飾符

 1.在别的類中,隻能通路共有成員(傳回該類中的私有成員)

abstract:抽象修飾符

 1.繼承的時候,如果子類想重寫父類的方法可以使用override方法,如果子類還想使用父類的方法,則在子類中可以使用base方法,如果子類不需要調用父類則用abstract抽象方法。

 2.如果裡面有抽象方法的類則這個類必須是抽象類。

 3.子類中可以用base方法調用父類中的方法 也可以用this調用 差別:一個調用的是父類的方法,一個調用的是子類自己的方法

 4.如果父類選擇的是abstract抽象方法 則子類同方法必須重寫 如果是virtual虛方法 則子類中同方法未必需要重寫

 5.抽象類不能被new(執行個體化),如果父類是抽象類,則子類必須也是抽象類

 6.子類能重寫父類abstract和virtual方法 孫子類還可以重寫override類重寫

 7.如果父類是virtual虛方法 則必須要有實作 哪怕就是空的{}方法,以便子類重寫 但如果父類是abstract抽象方法 則未必需要方法的實作 可以沒有空括号

sealed:不允許繼承的修飾符

 1.不允許别的類繼承該類

interface:接口

 1.相當于沒有方法實作的抽象類,注意:在接口中不能寫public屬性,直接例如:void play(),接口不能定義字段

const:常數修飾符

 1.用來修飾聲明的的常數,不可被修改

internal:内部通路修飾符

 1.隻有在同一個程式集的檔案中,内部類型或成員才是可被通路的