介面
介面用inte***ce關鍵字表示
可以存放成員: 屬性 方法 事件 索引器
解決不能多重繼承的問題
介面只負責類的宣告 保證統一性
介面可以包含屬性和方法的宣告,但不能有欄位
介面中的所有成員預設public,不能在訪問修飾符
實現介面的任何類或者結構必須實現其所有成員方法
介面不能被直接例項化,可以通過子類簡介實現、
類可以繼承多個介面,也可以繼承多個基類並實現乙個或多個介面
可以繼承多個介面,逗號隔開。需要實現所有繼承介面的方法
乙個子類在繼承多個基類時 ,仍然可以繼承介面
但是基類要放在繼承的
介面和抽象類的相同點
1,都定義了一些未實現的屬性和方法
繼承他們的的類必須實現這些成員
2,都不能直接被例項化,都可通過子類間接例項化
3,都可以包含讓相同子類繼承時的抽象成員
不同點抽象類中除了抽象成員還可以有非抽象成員
介面中只能包含抽象成員
2,抽象類中成員可以是私有的
介面中所有成員預設public
3, 介面中不能包含建構函式析構函式
靜態成員和常量
4 乙個類只有乙個父類
介面可以有多個介面
介面也可以實現多個繼承
* 泛型實現將型別作為引數
c#中的泛型可以把型別當做引數傳遞在定義時 ,用特殊符號表示
佔位符來代替實際型別, 當這個類在例項化時就需要傳入乙個
實際型別,這樣可以在外界控制引數型別、
優點:1,使用泛型可以最大程度重用
保護型別 提高效能
2,降低強制型別裝換 或裝箱拆箱操作、
3,可以對泛型型別進行約束
缺點:泛型成員型別不確定可能是類,結構體,所有不能使用算數運算子
比較運算子等
可以使用賦值運算子
//泛型型別的多引數
1,型別引數的佔位符可以有多個
2,型別引數可以是編譯器識別的任何型別
3,佔位符的名字不能重名
介面介面用inte***ce關鍵字表示
可以存放成員: 屬性 方法 事件 索引器
解決不能多重繼承的問題
介面只負責類的宣告 保證統一性
介面可以包含屬性和方法的宣告,但不能有欄位
介面中的所有成員預設public,不能在訪問修飾符
實現介面的任何類或者結構必須實現其所有成員方法
介面不能被直接例項化,可以通過子類簡介實現、
類可以繼承多個介面,也可以繼承多個基類並實現乙個或多個介面
可以繼承多個介面,逗號隔開。需要實現所有繼承介面的方法
乙個子類在繼承多個基類時 ,仍然可以繼承介面
但是基類要放在繼承的
介面和抽象類的相同點
1,都定義了一些未實現的屬性和方法
繼承他們的的類必須實現這些成員
2,都不能直接被例項化,都可通過子類間接例項化
3,都可以包含讓相同子類繼承時的抽象成員
不同點抽象類中除了抽象成員還可以有非抽象成員
介面中只能包含抽象成員
2,抽象類中成員可以是私有的
介面中所有成員預設public
3, 介面中不能包含建構函式析構函式
靜態成員和常量
4 乙個類只有乙個父類
介面可以有多個介面
介面也可以實現多個繼承
* 泛型實現將型別作為引數
c#中的泛型可以把型別當做引數傳遞在定義時 ,用特殊符號表示
佔位符來代替實際型別, 當這個類在例項化時就需要傳入乙個
實際型別,這樣可以在外界控制引數型別、
優點:1,使用泛型可以最大程度重用
保護型別 提高效能
2,降低強制型別裝換 或裝箱拆箱操作、
3,可以對泛型型別進行約束
缺點:泛型成員型別不確定可能是類,結構體,所有不能使用算數運算子
比較運算子等
可以使用賦值運算子
//泛型型別的多引數
1,型別引數的佔位符可以有多個
2,型別引數可以是編譯器識別的任何型別
3,佔位符的名字不能重名
約束泛型型別只能為引用型別 約束泛型型別只能為引用型別
c 筆記(十一) 介面泛型
1.介面 定義ibattle介面 宣告攻擊attack 移動move 跳躍jump 等方法 定義irest介面 宣告sitdown sleep 等方法 定義soldier 戰士 master 法師 assassin 刺客 archer 弓箭手 等類,繼承上述介面,並實現內部方法。2.定義mylist...
泛型類,泛型介面,泛型方法
1.泛型介面和泛型類的使用類似,無區別。2.泛型方法使用是將泛型引數放在方法的返回值之前,例子 public void f t x 如果f t x 這個方法所在的類已經是擁有泛型引數t的泛型類,那麼可以省略前面的。因為編譯器會自動為我們找到具體的型別,稱之為型別引數推斷 type argument ...
Java基礎 泛型 泛型介面 泛型類 泛型方法
一 二 三 泛型方法 1.public t test t t1,t t2 一 泛型 1.泛型產生的背景 原因1 集合中儲存資料時,編譯期間可以儲存任何型別的資料,導致取值時轉換出錯 原因2 每次取值都需要強制轉換,冗餘繁瑣 2.泛型的定義 泛型的本質是乙個引數化的型別 在程式編碼中一些包含引數的類 ...