什么是接口?接口是用来做什么的?
看了MSDN和C#入门经典,对接口的概念还是不太明白。什么是接口?接口是用来做什么的?我以前学过C++,学习C#的一些概念是主要通过对比C++来加深对它认识,可C++里好像没有接口这个概念?那么C#用接口的地方C++又是怎么实现的呢?望大家指点一二。
------解决方案--------------------接口用来设计一些抽象的方法和属性等,相当一个完全抽象的类! 
 他的方法要有非抽象的类来完全实现! 
 这样可以设计一些公共的方法和属性,供不同的类来实现! 
 主要用于系统架构的设计!
------解决方案--------------------接口不允许 "实现继承 ",抽象类可以。可以参考COM相关书籍。
------解决方案--------------------接口是一个标准或者规范,凡是想实现这个接口的功能都必须符合这个规范。 
 举个例子: 
 public interface IFly; 
 飞翔是一个接口,里面定义所以飞翔必备的东西,比如最高飞行高度阿,飞行速度阿之类的属性和方法。   
 鸟能飞,所以要实现所有飞翔接口里定义的东西。 
 class Bird:IFly 
 { 
 //必须实现所有飞翔的属性和方法。   
 //实现自己的属性方法 
 }   
 蜜蜂也能飞,所以它也要实现所有飞翔接口里定义的东西。 
 class Bee:IFly 
 { 
 //必须实现所有飞翔的属性和方法。   
 //实现自己的属性方法 
 } 
------解决方案--------------------说的白一点。 
 例如有A,B两个东西。它们相交互。但又不知道双方的规约。 
 所以这时C出现了。C相当于第三方。是A,B间的桥。C可以称为接口。之要A,B都去实现这个接口。它们就可以在某种意思上进行交互。   
 顾名思意。
------解决方案--------------------抽象类和接口的区别在于,抽象类一般表示实体,而接口一般表示功能。 
 举个例子: 
 class person 
 { 
 //所有人的属性和方法,有些已经实现好了,子类不必实现。 
 } 
 public interface IRun 
 { 
 //跑步所要实现的属性和方法 
 }   
 class man : person,IRun 
 { 
 //重写一部分人的属性和方法。   
 //添加男人自己的属性和方法。 
 }   
 class woman : person,IRun 
 { 
 //重写一部分人的属性和方法。   
 //添加女人自己的属性和方法,比如生孩子。 
 }   
 class dog : IRun 
 { 
 //狗也能跑,但是因为它是狗,所以不能继承man抽象类,因为它能跑,所以它可以实现IRun接口 
 }
------解决方案--------------------接口的作用在于制定类的设计规范 
 以便通过接口进行统一的调用
------解决方案--------------------接口订立了一种契约   
 C++的多继承可以用其他语言的接口实现
------解决方案--------------------举个例子 
 public interface ISpeak 
 { 
     void Speak(); 
 }   
 public Cat:ISpeak 
 { 
     public override void Speak() 
     { 
          Say( "喵~~~ "); 
     } 
 }   
 public Dog:ISpeak 
 { 
     public override void Speak() 
     { 
          Say( "汪汪! "); 
     } 
 }   
 public LZ:ISpeak 
 { 
     public override void Speak() 
     { 
          Say( "靠!管我屁事! "); 
     } 
 }   
 比如有一个ArrayList,存储许多能“说话”的生物吗, 
 我们就可以这样调用 
 foreach(object obj in arrSpeak) 
 { 
     ISpeak speak = obj as ISpeak; 
     speak.Speak(); 
 }
------解决方案--------------------简单地说接口就是公共属性的集合,定义了接口,就可以通过接口访问该类了
------解决方案--------------------建议看看设计模式