程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> c#接口和抽象類的對比學習

c#接口和抽象類的對比學習

編輯:關於C#

什麼是接口?

接口就是一種規范,協議(*),約定好遵守某種規范就可以寫通用的代碼。

定義了一組具有各種功能的方法。接口描述的是一種能力,具有這種能力的事物可以沒任何關系。比如:

public interface  IFly{void fly();}

實現這個接口的可以是飛機,鳥等,他們都有飛的能力但沒什麼關系。而抽象類就不同了。

接口解決了類的多繼承的問題

接口解決了類繼承以後體積龐大的問題。

接口之間可以實現多繼承

接口中的成員必須不能有實現(沒實現說白了就是不能有大括號哦),接口不能實例化。

接口中的成員不能有訪問修飾符,隱式公開public

接口中可以有屬性、方法、索引器等(其實都是方法,可以用Reflector反編譯看),但不能有字段

接口中的所有成員必須被子類中全部實現

接口的特點總結

1.接口是一種規范。為了多態。

2.接口不能被實例化。

3.接口中的成員不能加“訪問修飾符”,接口中的成員訪問修飾符為public,

不能修改。(默認為public)

4.接口中的成員不能有任何實現(“光說不做”,只是定義了一組未實現的成員)。

5.接口中只能有方法、屬性、索引器、事件,不能有“字段”。

6.接口與接口之間可以繼承,並且可以多繼承。

7.實現接口的子類必須實現該接口的全部成員。

8.一個類可以同時繼承一個類並實現多個接口,如果一個子類同時繼承了父類A,

並實現了接口IA,那麼語法上A必須寫在IA的前面。class MyClass:A,IA{},因為類是單繼承的。

9.當一個抽象類實現接口的時候,如果不想把接口中的成員實現,可以把該成員實現為abstract。(抽象類也能實現接口,用abstrac標記)

10.“顯示實現接口”,只能通過接口變量來調用(因為顯示實現接口後成員為private)。

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved