C#中的接口如何使用以及具体用途?
C#(sharp)接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识到接口的作用的时候就觉得用接口是多此一举,当然你这样想那是绝对绝对错误的,比尔盖茨的微软请的员工都是比盖茨还聪明的人,难道他们那么厉害的一堆程序员设计的C#(sharp)语言难道这样画蛇添足吗?
关于接口的作用,我们来具体深入浅出的举例说明分析一下!
1.我们常听说的接口是什么?
- 01
我们先从字面意思来理解一下什么是接口! 大家现在手机上,可能有很多app软件,比如天气预报的软件,有很多种,什么墨迹天气啊之类的等等.但是那么多天气预报软件,它们的数据是从哪里来的?其实都是从气象台来的.但是气象台只有一家,所以,给它们留了一个接口,它们就可以调用,实现自己想要的功能.
- 02
再举个例子,比如支付宝钱包或者其他工商银行,建设银行等.现在很多网站都支持在线支付.这些金融支付公司也是留下了接口,只要你申请通过,就可以接入进去.你自己开发的网站或者软件就可以拥有了客户支付功能. 甚至在我们的计算机编程中,我们调用的很多函数其实抽象的说是接口.像我们经常听到 API函数. API其实就是Application Programming Interface的缩写,翻译过来就是应用程序接口!
2.C#中接口的演示与讲解
- 01
那么我们现在打开Visual Studio中,新建一个C#控制台程序,用最简单的代码,我们来学习理解一下接口. 为了让每个人都可以快速理解,我的接口名就使用中文来命名.
- 02
第一步,先和我一样,写一个接口. 接口的名字叫做:接口_动物叫,这个动物有个"叫"的方法(能力)! //如果你的VS是低版本,可能不支持中文,那么你就用英文或者拼音先代替. //我的VS是2013版本 public interface 接口_动物叫 { void 叫(); }
- 03
我们继续在下面写一个类. 类的名字叫做狗.狗继承了我们前面写的那个接口,并且在类中实现了"叫"的方法. public class 狗 : 接口_动物叫 { public void 叫() { Console.WriteLine("汪!汪汪!!"); } }
- 04
我们在Main函数中,创建一只名叫旺财的狗,让它润润嗓子,吼两声. 如果你步骤和我一样,不出意外的话,你的屏幕上就会看到和我一样的效果. 狗 旺财 = new 狗(); 旺财.叫(); Console.ReadKey();
- 05
那么问题来了??既然你开始研究学习接口了,那么在这之前你一定了解过面向对象的基本语法. 我为什么要使用接口? 我可以直接在狗这个类里面写一个"叫"的方法就OK了.干嘛要绕一圈需要先继承接口才写了?这不是脱裤子放屁,多此一举吗? 比如我把代码稍微修改了一下,用以下的方法实现不是更加简单吗?
- 06
那么我们再来看一段代码!!! 我们根据前面的接口,又写了一个猫的类,并且在猫中也实现了叫这个方法. public class 猫 : 接口_动物叫 { public void 叫() { Console.WriteLine("喵!喵喵!!"); } }
- 07
把Main函数中的代码,修改成如下: 狗 旺财 = new 狗(); 猫 豆豆 = new 猫(); 旺财.叫(); 豆豆.叫(); Console.ReadKey();
- 08
猫猫和狗狗都开始叫了. 我们都知道,如果继承接口之后,必须在自己的类里面实现接口中的方法. 按照我们前面的方式直接不继承接口,在类中实现也是可以的. 但是如果我们从设计角度来看,C#和JAVA是为了应付软件危机,开发大型软件项目的团体编程. 一个项目中,如果有N个动物类要编写,这种类很复杂,工程量比较大. 每个类都分配一个程序员去完成.
- 09
A程序员开发动物驴. B程序员开发动物狗. C程序员开发动物猪. D程序员开发动物凤凰. ~~~~~~~~~~~~~ 省略5000种动物. 他们各自写的类,没有什么联系. 可是这些动物都需要一个"叫"或者其他更多的方法. 如果统一,让它们从一个接口继承,方便管理统一,方便调用. 如果不使用接口,虽然可以达到目的. 但是没有约束,将来软件很容易形成Bug或者漏掉这些方法. 所以,我们这么一琢磨就明白了,就明白了C#中的接口在什么时候用比较合适. 协定 ,降低耦合。 将来大家参与一些团队开发项目中,可能才会深切的体会到接口带来的方便. 而往往我们学习的时候,都是一个人写代码,对接口的体会并没有那么强烈.