日期:2014-05-19  浏览次数:20939 次

什么是接口?接口是用来做什么的?
看了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();
}
------解决方案--------------------
简单地说接口就是公共属性的集合,定义了接口,就可以通过接口访问该类了
------解决方案--------------------
建议看看设计模式