仙居县建设规划局网站,移动网上营业厅官网,本周国内新闻,开设网站步骤C#接口是一个让很多初学C#者容易迷糊的东西#xff0c;用起来好像很简单#xff0c;定义接口#xff0c;里面包含方法#xff0c;但没有方法具体实现的代码#xff0c;然后在继承该接口的类里面要实现接口的所有方法的代码#xff0c;但没有真正认识到接口的作用的时候就…C#接口是一个让很多初学C#者容易迷糊的东西用起来好像很简单定义接口里面包含方法但没有方法具体实现的代码然后在继承该接口的类里面要实现接口的所有方法的代码但没有真正认识到接口的作用的时候就觉得用接口是多此一举当然你这样想那是绝对绝对错误的比尔盖茨的微软请的员工都是比尔盖茨还聪明的人他们的C#能添这样的多此一举吗 可简单的这样理解接口接口是方法的抽象如果不同的类有同样的方法那么就应该考虑使用接口。 例如人和车都有“跑”的方法那么就可以定义一个接口IRun //注意定义接口时里面的方法不能有方法体 //应该在类里再去实现 //而具接口的成员全是公有的不应有修饰符 Public interface IRun { void Run(); } //人实现跑 Public class Person:IRun { Public Person() { ....... } //以下是人对“跑的具体实现 Public void Run() { Console.WriteLine(人用两脚跑) } } //车实现跑 Public class Car:IRun { Public Car() { ....... } //以下是车对“跑的具体实现 Public void Run() { Console.WriteLine(车用四轮跑) } } 此外一个类还可以实现多个接口比如人可以出声音、还可以跑那么可以让人同时实现“跑”和“出声音”这两个接口。我们定义一个接口public interface IBark{ void Bark();}再定义一个类,继承于IBark,并且必需实现其中的Bark()方法public class Dog:IBark{ public Dog() {} public void Bark() { Console.WriteLine(汪汪); }}然后,声明Dog的一个实例,并调用Bark()方法 Dog 旺财new Dog(); 旺财.Bark();试想一下若是想调用Bark()方法只需要在Dog()中声明这样的一个方法不就行了吗干什么还要用接口呢因为接口中并没有Bark()具体实现真的实现还是要在Dog()中那么使用接口不是多此一举吗? 还有人是这样说的从接口的定义方面来说接口其实就是类和类之间的一种协定一种约束。还拿上面的例子来说所有继承了IBark接口的类中必需实现Bark()方法那么从用户(使用类的用户)的角度来说如果他知道了某个类是继承于IBark接口那么他就可以放心大胆的调用Bark()方法而不用管Bark()方法具体是如何实现的。比如我们另外写了一个类。 public class Cat:IBark { public Cat() {} public void Bark() { Console.WriteLine(喵喵); } } 当用户用到Cat类或是Dog类的时候知道他们继承于IBark那么不用管类里的具体实现而就可以直接调用Bark()方法因为这两个类中肯定有关于Bark()方法的具体实现。 如果我们从设计的角度来看一个项目中用若干个类需要去编写。由于这些类比较复杂工作量比较大这样每个类就需要占用一个工作人员进行编写。比如A程序员去定Dog类B程序员去写Cat类这两个类本来没什么联系的可是由于用户需要他们都实现一个关于叫的方法这就要对他们进行一种约束让他们都继承于IBark接口目的是方便统一管理另一个是方便调用。当然了不使用接口一样可以达到目的只不过这样的话这种约束就不那么明显如果这样类还有Duck类等等比较多的时候难免有人会漏掉这样方法所以说还是通过接口更可靠一些约束力更强一些。转载于:https://www.cnblogs.com/tanding/archive/2012/06/27/2565097.html