繼承inte***ce介面之後,vs會顯示兩個實現介面的方式:實現介面、顯式實現介面。
先看**,介面類如下:
inte***ce ifileoperator
在子類中顯式實現
public class controllistxmloperator : ifileoperator
bool ifileoperator.writefile(string filepath)
}//正確的呼叫方式
string path;
ifileoperator obj = new controllistxmloperator();
obj.writefile(path);
//錯誤的呼叫方式
string path;
controllistxmloperator obj = new controllistxmloperator();
obj.writefile(path);
隱式實現
public class controllistxmloperator : ifileoperator
public bool writefile(string filepath)
}//可以使用兩種呼叫方式
//方式一
string path;
ifileoperator obj = new controllistxmloperator();
obj.writefile(path);
//方式二
string path;
controllistxmloperator obj = new controllistxmloperator();
obj.writefile(path);
區別:
(1)顯式實現方法帶字首,隱式無字首
(2)顯示實現介面時不能在覆蓋的方法或字段上使用訪問許可權關鍵字【private、protected、public等】
(3)隱示實現介面和類都可以訪問 顯示實現只有介面可以訪問
優缺點:
(1)顯示實現益處隱藏**的實現
(2)在使用介面訪問的系統中,呼叫者只能通過介面呼叫而不是底層的類來訪問
(3)當類實現多個介面時,並且介面中包含相同的方法簽名,此時使用顯式介面實現。即使沒有相同的方法簽名,仍推薦使用顯式介面,因為可以標識出哪個方法屬於哪個介面
C 顯式介面實現和隱式介面實現
介面的實現分為 隱式實現和顯式實現。隱式介面實現 如果類或者結構要實現的是單個介面,可以使用隱式實現。顯式介面實現 如果類或者結構繼承了多個介面,那麼介面中相同名稱成員就要顯式實現。顯示實現是通過使用介面的完全限定名來實現介面成員的。使用顯式介面成員執行體通常有兩個目的 1 因為顯式介面成員執行體不...
C 中介面的顯式和隱式實現
介面的實現分為 隱式實現和顯式實現。如果類或者結構要實現的是單個介面,可以使用隱式實現,如果類或者結構繼承了多個介面那麼介面中相同名稱成員就要顯式實現。顯示實現是通過使用介面的完全限定名來實現介面成員的。使用顯式介面成員執行體通常有兩個目的 1 因為顯式介面成員執行體不能通過類的例項進行訪問,這就可...
介面的顯式實現與隱式實現
我們在實現介面時,常常是類繼承介面,然後在介面中實現相應的方法。如下 inte ce ioutput class output ioutput 使用 測試一下實現的結果 可以看到繼承介面的類s的輸出s.output和介面i的輸出i.output是一樣的結果。這是很常見的介面實現方式。那如果我們這樣實...