public interface Ive
{
    void state();   //车的状态:新与旧
}
class car : Ive //轿车类

    public void state()
    {
          Console.WriteLine("这是一辆新车");
    }
如上一个接口和类。Ive里面有一个方法state(),它怎么没有方法体啊?
类car继承于Ive,又重写了方法state(),那要接口做什么啊。直接在类中写state()方法不就完了吗?

解决方案 »

  1.   

    用了接口好,能有效减少类之间的藕合性,如;类A 和 类B要通信,则要是他们直接联系的话,关系比较紧密,要是A - 接口 - B的话, 结构就比较好,减少了A与B的直接联系
    继承接口的类必须实现接口定义的函数,所以接口中的函数只是定义而已,可以简单的理解为只是一种声明而已,类car : Ive 因为继承了接口,所以一定要实现state()方法方法,否则会报错,
    另外,通过接口可以继承两个或两个以上的类,这是一般继承做不到的(因为.net中是执行单继承)