C#的接口有什么用?

      接口对于初学者来说是一个太抽象的东西。看了教材之后基本都是一个感觉:接口到底是用来干嘛的?书上讲声明接口,实现接口,并不难,难的是什么时候用接口呢?网上有几个非常通俗的讲解,很受益。再用自己的思路梳理一下,应该不算抄袭吧。

  案例:猫狗叫
  声明接口:
 interface 接口-叫
  {
      方法-叫();
 }

  实现接口:
  class 狗:接口-叫
  {
      方法-叫()
      {
           "汪汪";
       } 
 }

  class 猫:接口-叫
  {
      方法-叫()
      {
            "喵喵";
        } 
  }

  那么,使用的时候,就是  
class 动物行为
{
 main()
  {
     狗.方法-叫();
     猫.方法-叫();
  }
}

这时候肯定有人会想,为什么要这么复杂,直接定义一个类不就可以了?
像这样:
class 动物叫
{
  狗()
  {
        "汪汪"; 
  }
  猫()
  {
        "喵喵"; 
  }
}

class 动物行为
{
  main()
  {
    动物叫.狗();
    动物叫.猫();
  }
}

确实没有问题!

那为什么还要用看起来很复杂的接口?答案就在下面。

现在要新加一只鸭子的叫,对比上下两种方式的差异。

对于使用了接口的方式,只需增加如下操作:
  class 鸭:接口-叫
  {
      方法-叫()
      {
            "嘎嘎";
      } 
  }
 在“动物行为”的类里直接调用  鸭.方法-叫(); 即可。对其他的类不进行任何改动。

对于不使用接口的方式,先在“动物叫”的类里增加鸭叫的方法,然后再调用。
那么“动物叫”这个类是需要被随时修改的,这是一种不安全的做法。

当然,有人会说,不应该这样定义“动物叫”这个类,而是每个动物都定义成一个类,这样就可以单独增加鸭这个类了。我想说的是,这不就是使用接口的那个结构吗?这样做除了没有接口的声明,其他结构都一样了。

现在对动物行为的研究不仅限于叫,还有吃、喝、拉、撒等等,那么每个类里面都应该包含这些方法,这时候接口就体现了它存在的意义,一个极其重要的作用,就是规范每个类的方法。
只要是继承了接口的类,都包含了接口里面的方法。
那么,我再新加一个鸡的类,它需要哪些方法,都写在接口声明里面了,我只要逐一实现就好。
于是,我们说,接口是一种类与类之间的规范,一种协议!

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值