接口
接口用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,佔位符的名字不能重名
約束泛型類型只能爲引用類型 約束泛型類型只能爲引用類型