抽象方法的宣告
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的,...