-
介面的實現分為:隱式和顯式。 如果類或結構要實現單個介面,則可以使用隱式實現,如果類或結構繼承了多個介面,則應顯式實現介面中的同名成員。
顯示實現通過使用介面的完全限定名稱來實現介面的成員。
使用顯式介面成員執行程式通常有兩個目的
1. 由於顯式介面成員執行器無法通過類的例項訪問,因此介面的實現部分可以與公共介面分離。 如果乙個類只在內部使用介面,而該類的使用者不直接使用該介面,則此顯式介面成員執行器可能很有用。
2. 顯式介面成員執行器避免了介面成員之間因同名而混淆。 如果類希望具有具有相同名稱和返回型別的介面成員的不同實現,則必須使用顯式介面成員執行程式。 如果沒有顯式介面成員執行程式,則無法為具有不同名稱和返回型別的介面成員實現類。
-
讓我告訴你我自己的經歷:
介面在C語言中不可替代的作用是什麼? 簡單地抽象乙個類的共同特徵?
我嘗試了這個例子,刪除了類 a:icloneable,它仍然是可能的。 那有什麼用呢? 我的結論是,使用該介面有兩個原因:
1:你自己設計的原因,有了規範,別人更容易理解你的系統是如何與你的介面一起工作的。
2:如果其他人設計了乙個介面,例如icompare);由於別人的引數是乙個介面,如果你想使用這個函式,你的類也必須實現這個介面。 記得:
介面對應的是類,而不是方法,介面的物化就是類。 但是介面指定了類要實現的方法。
例如:public class valuecompare: icomparer}
-
該介面用於封裝,是最簡單的。
-
在網際網絡上找到的答案,希望對您有所幫助。
1.介面最基本的功能是作為客觀規範,對一類事物的屬性進行總結,相當於乙個父類。
比如人有身高的屬性,吃飯的方法,痛的時候喊叫""這個事件。
好的,那麼你可以總結這些屬性、方法和事件,並定義乙個名為"人類"
這裡的 loghandler onlog 是乙個事件(更多內容見下文)。
2.介面還具有最基本的功能之一(父類沒有) - 多型性。
估價的人名有各種各樣的人"州"比如,乙個人擁有人類的所有屬性,但是它很特殊,這個人有一種普通人沒有的行為,但那是動物獨有的"食人"(而不是將人視為動物),然後這個人還實現了另乙個介面,稱為"動物"
具體,真實**:
public class ribenren : ipeople, ianimal
public string eatpeople(ipeople people)
3.以上兩個函式只是形式上的,它還有另乙個函式,那就是"子類的例項呼叫對父類的引用"(好像是這麼說的)。
說明。 我不知道某人叫什麼名字,我只知道他是人類,所以我必須知道他在吃東西,我可以扔給他一根骨頭。
特定**。 ipeople chenlaoshi = new chenguanxi();
chenlaoshi .eat("骨骼");
4.至於那件事。
LogHandler 是乙個委託,為什麼叫委託,就是把一些東西委託給系統,讓它在任何情況下觸發什麼事件。
特定**。 *是我*
public class chaoren :ipeople
*被砍掉的人的班級*
public class chenguanxi : ipeople, ianimal
private void beikan()}
-
介面做的最簡單的事情是不同的類做同樣的事情!
但是不同類的相同行為會推遲到子類實現!
例如,在系統分析中,我們只使用兩個類,乙個是 dog,另乙個是 cat,它們都可以實現乙個 shot 行為,如果兩者都有,則可以將 shot 行為提公升到 dog 和 cat 的父類,即 animal 類,因為系統不提公升這兩個類, 也就是說,當前系統中沒有 dog 和 cat 的父類,那麼,我們可以實現乙個介面來解決兩個不同類的相同行為,那就是定義乙個 ishot 介面,讓兩個不同的類繼承!現在兩個類的行為方式相同!
當然,你也可以將貓和狗的類公升級為抽象的動物類,但如果你不能,那就不行了! 比如魚不能出手,但鯨魚可以,而鯨魚具有所有魚的特徵,所以無法提高鯨魚的出手,所以賺全錢出手並不是乙個好主意,所以狗、貓、鯨魚可以共同繼承乙個ishot,但你不能把出手行為推廣到狗、貓、鯨魚的父母身上!
因此,對於介面,簡而言之:介面可以使不同的類以相同的方式執行,並將該行為推遲到子類實現中!
至於子類實現的延遲,意思是鯨魚、貓、狗的射擊行為是不一樣的,各自實現不同的函式,這個行為肯定是有的!
比如讓 whale 繼承 ishot 介面後,在寫 whale 型別的時候一定要實現 ishot 中的所有方法,比如 shot,如果不實現,編譯就無法傳遞,即 whale 繼承了 ishot,ishot 中的 shot 方法必須寫在 whale 的 for 實現中,這就是服從子類實現的意義!
-
樓上的答案應該讓房東滿意。 讓我再打個比方:如果把乙個介面比作乙個合約(它決定了你能做什麼,而不是你怎麼做),實現介面的類就等價於執行合約的人,這個人必須按照合約做事,但不同的人可以用不同的手段做某事。
希望對你有所幫助。
-
當你知道介面是什麼時,你就知道實現這些介面的類必須做什麼。
例如,當你學會操作某台***機器,而你接觸到另一台***機器時,你一定會知道肯定有乙個按鈕可以彈出一些東西來播放光碟。 你也要知道這一點,如果插上了,就一定有聯結器。
當然,具體實現在不同的***機器上是不同的,有的會彈出一點點,有的會慢一些。
-
它是繼承和繼承的關係,類可以從介面繼承並實現介面的所有方法。 介面只定義方法或其他東西的返回值,而繼承類負責實現介面的方法,依此類推。
-
類可以包含方法,也可以編寫方法,而介面只能包含方法名,不能包含邏輯。
-
介面都是虛擬的。 僅提供方法名,不提供實現,介面通過繼承實現。
-
"介面也存在,因為需要*協作*"---這一點切中要害。
-
僅僅因為該介面對您編寫的內容沒有意義並不意味著它在 C 語言中沒有意義。
-
介面是一種行為準則,它定義了一類行為方法,只要實現介面的類設計為靈活,就可以從介面定義的物件熱插拔。
然後是 C 是單一的繼承,但你可以繼承多個介面,就像找工作一樣,如果你繼承了會計介面,那麼你可以做會計,如果你繼承了程式設計師介面,你可以做,你可以做,但是如果你把這個工作行為定義為乙個類, 那麼你只能做一項工作。