星空网 > 软件开发 > ASP.net

【C#进阶系列】12 接口

C#不支持类的多继承,然而却可以继承多个接口。简单的就不说了,来看看下面的例子:

 public interface IRead {  string GetText(); } public interface IWrite {  string GetText(); }  

对于上面的这种情况,如果一个类同时继承上面两个接口,那么如何去实现这两个名字相同的方法呢?

显示接口方法(EIMI)

public class MyCpu:IRead,IWrite {   string IRead.GetText() {     return "这个方法实现IRead的方法";   }   string IWrite.GetText()   {     return "这个方法实现IWrite的方法";   }   public string GetText()   {     return "这个方法实现自己独有的方法";   }}

如上图,只需要在方法前面加上接口名即可。然而显示接口方法只能是私有方法。

然而这种方法要慎用,因为使用了这种方法后,值类型的实例在转换成接口时会发生装箱。因为是私有的,所以也不能被派生类调用。

最重要的是显示接口方法的调用很奇葩:

var cpu = new MyCpu();Console.WriteLine(cpu.GetText());Console.WriteLine(((IRead)cpu).GetText());IWrite b = cpu;Console.WriteLine(b.GetText());Console.ReadLine();

必须先转一道再调用,会让使用的人很困惑。

用基类还是用接口

  • 基类更多的是一个身份上的事,比如鸟是燕子的基类。而接口是一个行为上的事,比如鸟和飞机都能飞,那么飞就是一个接口。
  • 基类可以为派生类提供良好的默认实现。
  • 基类添加一个方法,派生类自动就可以继承。而接口添加一个方法,派生类还需要重写。

然而我认为实际上仅仅用第一个来判断就好了,因为它更偏向于基于实际业务去考虑到底用基类还是接口。




原标题:【C#进阶系列】12 接口

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

中方态度坚定:https://www.goluckyvip.com/tag/423.html
泰国海外仓分销:https://www.goluckyvip.com/tag/42300.html
泰国海外仓收费标准:https://www.goluckyvip.com/tag/42302.html
泰国海外仓一件代发:https://www.goluckyvip.com/tag/42303.html
泰国海外仓租金:https://www.goluckyvip.com/tag/42304.html
泰国海运专线:https://www.goluckyvip.com/tag/42305.html
在古巴做游轮 古巴旅游项目:https://www.vstour.cn/a/363194.html
西藏旅游攻略自驾游需要多少天 去西藏旅游自驾游要多久时间:https://www.vstour.cn/a/363195.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流