什麼是接口?
接口就是一種規范,協議(*),約定好遵守某種規范就可以寫通用的代碼。
定義了一組具有各種功能的方法。接口描述的是一種能力,具有這種能力的事物可以沒任何關系。比如:
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)。
查看本欄目