C#接口 泛型

接口

接口用interface關鍵字表示

可以存放成員: 屬性 方法 事件 索引器

解決不能多重繼承的問題

接口只負責類的聲明 保證統一性

 

接口可以包含屬性和方法的聲明,但不能有字段

接口中的所有成員默認public,不能在訪問修飾符

實現接口的任何類或者結構必須實現其所有成員方法

接口不能被直接實例化,可以通過子類簡介實現、

類可以繼承多個接口,也可以繼承多個基類並實現一個或多個接口

可以繼承多個接口,逗號隔開。需要實現所有繼承接口的方法

一個子類在繼承多個基類時 ,仍然可以繼承接口

但是基類要放在繼承的

*/

/*

接口和抽象類的相同點

1,都定義了一些未實現的屬性和方法

繼承他們的的類必須實現這些成員

2,都不能直接被實例化,都可通過子類間接實例化

3,都可以包含讓相同子類繼承時的抽象成員

 

不同點

抽象類中除了抽象成員還可以有非抽象成員

接口中只能包含抽象成員

 

2,抽象類中成員可以是私有的

接口中所有成員默認public

3, 接口中不能包含構造函數析構函數

靜態成員和常量

4 一個類只有一個父類

接口可以有多個接口

接口也可以實現多個繼承

*/

/*

* 泛型實現將類型作爲參數

C#中的泛型可以把類型當做參數傳遞在定義時 ,用特殊符號表示

佔位符來代替實際類型, 當這個類在實例化時就需要傳入一個

實際類型,這樣可以在外界控制參數類型、

優點:

1,使用泛型可以最大程度重用

保護類型 提高性能

2,降低強制類型裝換 或裝箱拆箱操作、

3,可以對泛型類型進行約束

缺點:

泛型成員類型不確定可能是類,結構體,所有不能使用算數運算符

比較運算符等

可以使用賦值運算符

//泛型類型的多參數

1,類型參數的佔位符可以有多個

2,類型參數可以是編譯器識別的任何類型

3,佔位符的名字不能重名

接口

接口用interface關鍵字表示

可以存放成員: 屬性 方法 事件 索引器

解決不能多重繼承的問題

接口只負責類的聲明 保證統一性

 

接口可以包含屬性和方法的聲明,但不能有字段

接口中的所有成員默認public,不能在訪問修飾符

實現接口的任何類或者結構必須實現其所有成員方法

接口不能被直接實例化,可以通過子類簡介實現、

類可以繼承多個接口,也可以繼承多個基類並實現一個或多個接口

可以繼承多個接口,逗號隔開。需要實現所有繼承接口的方法

一個子類在繼承多個基類時 ,仍然可以繼承接口

但是基類要放在繼承的

*/

/*

接口和抽象類的相同點

1,都定義了一些未實現的屬性和方法

繼承他們的的類必須實現這些成員

2,都不能直接被實例化,都可通過子類間接實例化

3,都可以包含讓相同子類繼承時的抽象成員

 

不同點

抽象類中除了抽象成員還可以有非抽象成員

接口中只能包含抽象成員

 

2,抽象類中成員可以是私有的

接口中所有成員默認public

3, 接口中不能包含構造函數析構函數

靜態成員和常量

4 一個類只有一個父類

接口可以有多個接口

接口也可以實現多個繼承

 

* 泛型實現將類型作爲參數

C#中的泛型可以把類型當做參數傳遞在定義時 ,用特殊符號表示

佔位符來代替實際類型, 當這個類在實例化時就需要傳入一個

實際類型,這樣可以在外界控制參數類型、

優點:

1,使用泛型可以最大程度重用

保護類型 提高性能

2,降低強制類型裝換 或裝箱拆箱操作、

3,可以對泛型類型進行約束

缺點:

泛型成員類型不確定可能是類,結構體,所有不能使用算數運算符

比較運算符等

可以使用賦值運算符

//泛型類型的多參數

1,類型參數的佔位符可以有多個

2,類型參數可以是編譯器識別的任何類型

3,佔位符的名字不能重名

約束泛型類型只能爲引用類型 約束泛型類型只能爲引用類型

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章