see
http://expert.csdn.net/Expert/topic/2823/2823488.xml?temp=.8250849

解决方案 »

  1.   

    从面向对象的观点来看,接口就是对象的外观,而对象实际的工作方式就是实现。和类一样,接口也可以定义属性、方法和事件。与类不同的是,接口并不提供实现。现在的接口,是由类来实现的,并从类中被定义为单独的实体。我们可以这样来理解,接口表示的是一种约定。实现接口的类必须严格按其定义来实现接口的每个方面。有了接口,就可以将功能定义为一些紧密相关成员的小组。可以在不危害现有代码的情况下,开发接口的增强型实现,从而使兼容性问题最小化。也可以在任何时候通过开发附加接口和实现来添加新的功能。虽然接口实现可以进化,但接口本身一旦被发布就不能再更改。对已发布的接口进行更改会破坏现有的代码。若把接口视为约定,很明显约定双方都各有其承担的义务。接口的发布者同意不再更改该接口,接口的实现者则同意严格按设计来实现接口。接口的实现可以是类,也可以是结构。接口的定义用的是Interface关键字。通过接口,我们可以定义下某种对象的基本外观,然后可以自由地进行实现与扩展,却不涉及对原型的直接修改。
      

  2.   

    接口只是方法、属性、事件的描述,只声明不实现,类继承接口就要实现该接口的所有成员,接口支持多继承而类不支持,接口有一点就是可以使不同的类具有相同的特征表现,举例来说,在.NET Framework中,所有实现ISerializable接口的类都可以进行串行化用于网络传输,因为继承ISerializable接口的类都实现了该接口中的方法GetObjectData
      

  3.   

    // 道理,楼上的兄弟都说了,我来个实例:
    public interface intf1
    {
    void ShowMessage(string str);
    }
    public class Class1: intf1
    {
    public void ShowMessage(string str)
    {
    MessageBox.Show(this.ToString() + ":" + str);
    }
    }
    public class Class2: intf1
    {
    public void ShowMessage(string str)
    {
    MessageBox.Show(this.ToString() + ":" + str);
    }
    }
    // 使用:
    private void button1_Click(object sender, System.EventArgs e)
    {
    intf1 cls = new Class1();
    cls.ShowMessage("显示消息");
    cls = new Class2();
             cls.ShowMessage("显示消息");
    }
      

  4.   

    简单的理解:
    借口就是说明一个类can do, 能做什么
    而继承是说明一个类is a,是什么
    用这种概念来区分你他们