使用關鍵字inte***ce建立的資料型別。
1、擴充套件乙個已有類的行為。
2、規範不同型別的行為。
1、介面是抽象的,介面是一組行為的抽象。
介面只表達 「能做什麼」 , 不表達「如何做什麼」
2、介面是規範,定義一組對外的行為規範。
即實現類必須實現介面的所有成員。
1、介面中不能包含字段,可以包含:行為【方法,屬性,索引器,事件】
2、介面中的所有成員不能加任何訪問修飾符,全部預設公有
3、介面中的所有成員不能有實現,全部預設抽象的
4、實現類實現介面用「:」與繼承相同
5、實現類實現可以實現多個介面,且每個介面中所有的成員必須都實現(即實現類可以繼承多個介面,不同於類只能繼承乙個)
6、介面中的成員在實現類中以public的方式實現(除顯式實現)
7、介面的引用可以指向實現類的物件 介面 obj=new 實現類()
語法格式:
1、類繼承介面 class a : inte***ce b,inte***ce c
類需要實現繼承介面中所有的方法,支援多繼承
2、介面繼承介面 inte***ce a :inte***ce b,inte***ce c
介面不能實現繼承介面的任何方法,支援多繼承
3、struct結構體可以繼承介面,但是不能繼承類
類實現介面的方式。
1、隱式實現(常規用法,沒啥好說的)
public 資料型別 介面方法()
2、顯示實現(非常規用法,很少用,了解一下就好)
資料型別 介面名.介面方法()
當成私有方法使用,外部無法訪問,除非 介面 a = new 繼承類,此時a可以在外部訪問。
顯示實現的作用。
1、解決介面中的成員對實現類不適用的問題。
即:介面中有若干方法該類不需要實現,使用顯示實現在外部寫**時將不會顯示。一定程度上減少**汙染,
2、解決多介面實現時的二義性問題(用的更少)
即:介面a中有跑步的方法,介面b中也有跑步的方法,當乙個類同時繼承的時候,系統不知道想實現哪個介面,此時可以使用顯示實現,不用也不會報錯。
例如:例子1:
a原本設計只會走,但是後續版本要求還會跑。此時可以新增乙個方法,但是此時小b也遇到了同樣的問題,小b也可以加乙個方法,但是還有小c、小d、等等,此時我們就可以創造乙個跑步的介面,裡面有跑的方法,小a,小b及其他人全部繼承這個介面。他們就都有跑步這個方法了。
例子2:
動物有表演大賽,參賽的動物有獅子,老虎,老鷹,小鳥。
我們可以設計乙個基類animal,有吃飯和睡覺兩個方法。
上述四種動物皆繼承與animal。
但是現在問題來了,獅子和老虎會捕獵,老鷹和小鳥會飛,此時該怎麼設計呢?
答案是使用介面,乙個是捕獵的介面,老虎和獅子繼承。乙個是飛的介面,老鷹和小鳥繼承。
總的來說,介面這部分的知識較為簡單,主要是起到乙個規範**的作用。
C 介面詳解
介面描述的是可屬於任何類或結構的一組相關行為,所以實現介面的類或結構必須實現介面定義中指定的介面成員。定義 使用inte ce 關鍵字,由方法 屬性 事件 索引器或這四種成員型別的任意組合構成。另可使用new public protected intenal和private等修飾符實現介面,但介面成...
Linux下C呼叫C 介面詳解
c 做久了,經常用c 的方式去思考問題,有時候就突然發現自己不太會寫c程式了。寫程式的時候,難免會用到第三方外掛程式或者是庫,而這些外掛程式或者庫很多時候都不能完全滿足我們的需求,遇到這種情況,如果全是c 那好辦,寫個介面卡就ok了,關於介面卡模式參考我的部落格 c adaptor 設計模式 如果要...
C 介面歸納總結例項詳解
c 介面的學習,在程式設計中,我們經常會用到介面,那什麼是介面呢?介面描述的是可屬於任何類或結構的一組相關功能,所以實現介面的類或結構必須實現介面定義中指定的介面成員。介面使用inte ce關鍵字進行定義,可由方法 屬性 事件 索引器或這四種成員型別的任意組合構成。介面的特性 1.介面類似於抽象基類...