天天看点

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