如图 1.1,图片较大建议点开观看。

接口是在语言层面上与类相似的一种概念(语法方面),但是它们并不相同。接口声明了实现它的类应该具有的某种能力或者提供某种服务:
public interface ITaxCalculator
{
int Calculate();
}
这个接口为想要胜任 tax calculator 工作的类提出了一个要求,就是要实现 Calculate() 方法:
public class TaxCalculator : ITaxCalculator
{
public void Calculate()
{
...
}
}
所以,接口仅仅只是一个声明,并没有实现。接口只能声明方法和属性,不能声明字段,因为接口是一个标准,实现应该交给实现它的类。
在声明接口中的成员时,我们不用指定访问修饰符。
接口使得程序的耦合性降低。因此如果我们使用接口,当类发生了修改,这个修改造成的影响很小,甚至互不影响。
单元测试是自动化测试的一个部分,它可以用来提升代码的质量。为了实现自动化测试,我们需要编写测试代码。这样做可以在我们修改了代码时及时地帮我们找到 bug。
要进行单元测试,我们需要将需要测试的方法或系统单独分离出来。我们假定其他的类都能够正常运行,在这个前提下,我们对我们需要测试的部分进行测试。
如果一个类强依赖于另一个类,那么我们就没办法将它从系统中分离出来,因此我们需要使用接口,降低它的耦合性,这样才能方便进行单元测试: