C#编程利器之三:接口(Interface)【转】

时间:2021-11-12 16:47:00

C#接口是一个让很多初学者容易迷糊的东西,用起来好象很简单,定义接口,然后在里面定义方法,通过继承与他的子类来完成具体的实现。但没有真正认识接口的作用的时候就觉得用接口是多此一举,当然你这样想是绝对错误的。在软件设计中有一个非常重要的原则就是:面向接口编程,依赖与接口或抽象层。可见接口在真正的开发中是多么的重要。

在之前C#编程利器之一:类(Class)一文里介绍了类的相关知识,本文主要介绍OO编程中的另一个重要知识点--接口。在某种程度上说,接口也是类,一种特殊的类或抽象类。 更准确说接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的[MSDN]。

一、接口的定义

如上MSDN上对接口的定义,接口只包含方法、委托或事件的签名。这句话用更通俗点的解释便是,接口只是负责完成定义的操作,而不去实现具体的细节。如下面的IPlayer接口,它是一个玩游戏的接口,里面只是定义了相应的方法,而不带方法的具体实现,代码如下:

 1/**//// <summary>
 2/// 玩游戏接口
 3/// </summary>

 4public interface IPlayer
 5{
 6    /**//// <summary>
 7    /// 获取玩家的名字
 8    /// </summary>
 9    /// <returns>玩家的名字</returns>

10    string GetName();
11
12    /**//// <summary>
13    /// 由Player决定出什么手势
14    /// </summary>
15    /// <returns>本接口定义的三个常量之一</returns>

16    string Show();
17}