天天看點

Java和C#中的接口對比(有你不知道的東西)

Java和C#中的接口對比(有你不知道的東西)
Java和C#中的接口對比(有你不知道的東西)
Java和C#中的接口對比(有你不知道的東西)
Java和C#中的接口對比(有你不知道的東西)

另外,我們注意到顯式實作接口後int iinterface.add(int a, int b)中少了public修飾符,但是我們一加上編譯器又會提示錯誤:“修飾符“public”對該項無效”。另外因為是program類通路自身的方法,是以通路性也不是構成add()方法無法通路的原因。

如果我們将main()函數中的代碼修改一下,将new program()的變量賦給iiterface的引用,再看看結果如何

從以上結果,我們可以看出如果是顯示實作接口,那麼對接口中方法的通路必須要通過接口類型的引用,用顯示實作了接口的類是沒有辦法使用的。

· 由于顯式接口成員實作不能通過類或結構執行個體來通路,是以它們就不屬于類或結構的自身的公共接口。當需在一個公用的類或結構中實作一些僅供内部使用(不允許外界通路)的接口時,這就特别有用。

· 顯式接口成員實作可以消除因同時含有多個相同簽名的接口成員所引起的多義性。如果沒有顯式接口成員實作,一個類或結構就不可能為具有相同簽名和傳回類型的接口成員分别提供相應的實作,也不可能為具有相同簽名和不同傳回類型的所有接口成員中的任何一個提供實作。

本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

轉載:http://www.cnblogs.com/kissazi2/p/3291730.html