c 抽象方法 靜態類

2021-10-23 20:48:28 字數 3477 閱讀 3433

抽象方法的宣告

abstract

class

player

1.抽象方法必須放在抽象類中,class前面加上修飾符abstract

2.返回值前面也要加修飾符abstract

3.抽象方法沒有方法體,格式: 訪問修飾符 abstract 返回值型別 方法名稱(引數列表)

抽象方法的特性

1.抽象方法是隱式的虛方法

2.抽象方法只能有宣告,沒有實際的實現

3.抽象方法必須被子類重寫並實現,或者使子類也為抽象類

4.訪問修飾符不能為private,不然子類就無法訪問也就無法重寫了

抽象方法的重寫

class

footplayer

player()

}

抽象類的特性

1.抽象類不能使用new關鍵字例項化,抽象類是不完整的

2.抽象類除了可以擁有普通成員外,還可以擁有抽象方法

3.從抽象類派生出的非抽象類必須實現抽象類當中的所有抽象方法

4.抽象類不能例項化但可以擁有構造方法,構造方法不能是抽象方法

5.不能使用sealed修飾符修飾抽象類,因為採用sealed修飾符修飾的類是無法被繼承的,而抽象類是必須被繼承的。

靜態成員

class

person

}

靜態成員;靜態成員變數是和類相關聯的,他可以作為類中共有的變數(是乙個共性的表現),靜態成員變數不依賴特定物件的存在,訪問的時候用類來操作

靜態成員使用static關鍵字修飾

靜態成員要通過類名就訪問

public

static

void

main

(string

args)

靜態成員的特點:

1.靜態成員隨著類的載入而載入,不管對乙個類建立多少個例項,靜態成員都只有乙個副本

2.靜態方法可以被過載但是不能被重寫,因為他們屬於類,不屬於任何例項

3.靜態成員由類名通過點語法呼叫,非靜態方法通過物件呼叫

4.靜態方法只能訪問靜態成員,包括靜態成員變數和方法,例項方法可以訪問例項成員變數和例項方法,也可以訪問靜態成員

靜態構造

class

hero()

static

hero()

}

靜態構造的特性

1.靜態建構函式格式是固定的,不能有訪問修飾符不能帶任何引數

2.乙個類只能有乙個靜態建構函式,即靜態建構函式不能過載

3.靜態建構函式不能直接被呼叫,當建立類例項或訪問任何靜態成員時,靜態建構函式會被自動呼叫,並且只執行一次

4.乙個類的靜態函式在它所有的派生類的靜態函式執行後執行

單例模式

什麼叫設計模式?

設計模式是前人返回實踐設計,總結出來的**架構思路或模式。常用的設計模式有:單例模式、工廠模式、**模式等

單例模式的三要點:

1.單例模式某個類只能有乙個例項

2.單例模式必須自行建立這個例項

3.單例模式必須自行對外提供這個例項

單例模式實現步驟

1.預設構造使用private修飾

2.內建該類的靜態例項

3.靜態構造方法中給該靜態方法做例項初始化

4.對外提供獲取該靜態例項的方法

單例模式實現

public

static

singleton()

;//定義靜態例項

private

static

singleton instacne;

//對外提供獲取該靜態例項的方法

public

static

singleton getinstace()

return instance;

}}

單例的使用

singleton sinleton = singleton.

getinstacne()

;console.

writeline

(singleton.name)

;

索引器

索引器允許乙個物件可以像陣列一樣被索引,當類定義乙個索引器時,該類的行為就可以看作是乙個虛擬陣列樣,可以用陣列訪問修飾符 來訪問該類的例項

public

string

name =

;public

string

this

[int index]

get}

命名空間/命名空間

命名空間是提供一種讓一組名稱與其他名稱分隔開的方法。在乙個命名空間宣告的類與其他命名空間宣告的類相同也不衝突。

運算子過載

重定義或過載c#內建的運算子。因此,程式設計師也可以使用使用者自定義型別的運算子。過載運算子是具有特殊名稱的函式,是通過關鍵字operator 後面跟運算子的符號來定義的。

public

static

person

operator+(

person p1 ,

person p2)

介面inte***ce

iusb

string

readfile()

;void

writefile

(string content);}

inte***ce

ivga

1.介面可以包含時間、索引器,方法和屬性,但是不能包含字段

2.介面是乙個引用型別,只包含了功能的定義、不包含功能的實現

3.介面的訪問修飾符是固定的public,不能用其他訪問修飾符

4.介面成員不能新增任何的訪問修飾符

5.類的繼承只能單繼承,介面的實現可以多實現

class

person

}inte***ce

iwolf

class

personwolf

:person

, iwolf

}class

computer

:iusb

public

string

readfile()

public

void

writefile

(string content)

public

string

showvideodata()

}

1.介面一旦被實現,就要實現介面中所有的成員

2.介面無法直接進行例項化,因為其成員必須通過實現介面的任何類或結構來實現

3.實現多介面時,使用逗號隔開

4.類與類之間叫做繼承,介面與介面,介面與類之間叫做實現

抽象方法抽象類 靜態類靜態方法靜態成員

一 抽象類和抽象方法 用abstract修飾的方法稱為抽象方法 含有抽象方法的類必須定義為抽象類 只是當做派生類的基類來使用 抽象的特徵 抽象方法只做宣告,不能包含具體實現 抽象方法旨在被繼承之後使用,所以不能用 private來修飾 2,抽象類不能被直接例項化 不能用new建立 3,抽象類可以沒有...

C 中抽象類裡面建立靜態方法

public class testmain public class testmain 如上面的程式所示是可以執行的。理解 一般情況下抽象類中可以包含抽象方法和非抽象方法,靜態類中只能包含靜態成員,所有的靜態成員也只能包含在靜態類中。因為靜態static的本質是包含abstract和sealed的,...

C 中抽象類裡面建立靜態方法

public class testmain public class testmain 如上面的程式所示是可以執行的。理解 一般情況下抽象類中可以包含抽象方法和非抽象方法,靜態類中只能包含靜態成員,所有的靜態成員也只能包含在靜態類中。因為靜態static的本質是包含abstract和sealed的,...