当前位置:编程学习 > C#/ASP.NET >>

C#接口是什么意思

C#接口是什么意思,注,新手 --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/87d83y5b(VS.80).aspx --------------------编程问答-------------------- 契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超人了。那么多继承不就是多继承几个特殊能力接口,是不,咸蛋超人不就成百变金刚了。
--------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋……

Good!Up! --------------------编程问答-------------------- 看1楼MSDN上的。。。。。 --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋……


够生动 --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……


好好懂! --------------------编程问答-------------------- 顶楼上说的很生动,

抽像是can do 接口是is a 陈广的概述!~ --------------------编程问答-------------------- 只是一个特殊的类。 --------------------编程问答-------------------- 银行的例子用接口实现这点没有问题理解很到位,但咸蛋超人的例子,我理解的更好的实现方式应该是抽像!~ --------------------编程问答-------------------- 刚才银联的例子你想到了什么呢?  对呀,有了银联我不管用什么卡都可以随便去哪家银行取钱了也!!有人问:谁说不管什么卡,有些卡没有银联的~这不就对了麻,凡是符合这个(银联)规范的,才可以有这样的功能~~
听明白了没???  还没??
我再说个比较好记得吧,接口,这词汇听起来是什么东西接起来的东东,对吧! 想到什么了?  插头!对,就是电容器,你家里的手机充电,电脑充电都要用插头来帮忙吧,常规都是2个金属棒子的,什么是常规?不就是规范么,你生产出个6个棒子的,能用???只有符合标准插头的才能插入插槽,提供电力不是么?所以你履行了这规范,也就可以实现里面提供几伏的电力,实现多态~ --------------------编程问答--------------------
引用 7 楼 liuh6 的回复:
顶楼上说的很生动,

抽像是can do 接口是is a 陈广的概述!~


报谦!笔误

顶楼上说的很生动,

接口是can do 抽像是is a 陈广的概述!~ --------------------编程问答-------------------- “快乐乔巴”解释的通俗易懂,佩服! --------------------编程问答-------------------- 接口只是实现一个规范而已,具体的功能,要在继承接口的类里面实现 --------------------编程问答-------------------- C#中很少用到面向接口编程的 --------------------编程问答--------------------
引用 9 楼 liuh6 的回复:
银行的例子用接口实现这点没有问题理解很到位,但咸蛋超人的例子,我理解的更好的实现方式应该是抽像!~

OK,这么来说吧。
我们都是人是吧,人都有眼睛嘴巴等等人类固有的特征。我完全可以继承这个人类基类,然后再在派生类中实现一些人类不相同的地方,比如是男是女,名字,身高等等。也就是说派生类才是一个完整的人,是可以去实例出人的,而人类这个基类,是不是很抽象,你觉得人类这个基类能实例吗?? 不符合逻辑吧,所以完全可以定义成抽象类。
你要问为什么不可以定义成借口? 我刚开始不是说了么,人类有共同的特征,基类中完全可以给出一些眼睛,嘴巴的实现,接口可以吗?不可以
先喝口水先。。。 --------------------编程问答-------------------- 说的不错 --------------------编程问答-------------------- 2楼说的好
--------------------编程问答-------------------- 有点听不太懂! --------------------编程问答-------------------- 接着上面人类的例子说,抽象类和借口他们之间有啥区别,有些人说2个不一样么,只不过抽象类中能实现一些成员方法罢了,那么是否在设计的时候抽象类和借口有冲突呢??大家可以去看看《大话设计模式》
恩,上面的例子还不能说明什么,那接着说。抽象,顾名思义就是对一个东西的描述,就像liuh6说的接口是can do 抽像是is a 陈广的概述!~  你要问了,凭什么?先来了解下抽象类和借口他们定义上的区别,抽象类可以给出一些成员的实现,而接口却不可以,必须要子类去完全实现,这里都懂是不?从这一点我们可以看出,就像前面举的例子,人类都有一些共性的,眼睛嘴巴眉毛,人的体态,就像在描述人类一样,一些共性的东西完全可以直接实现它,然后子类去继承后就说明这个子类有人类的特征了,然后具体这个子类是本拉登还是布什就要你在子类中具体实现了。所以我们要用抽象类去封装这个人类基类。

--------------------编程问答-------------------- USB  是什么意思嘛?
规范, --------------------编程问答-------------------- 那么接口呢?can do(行为),为什么不能在接口中实现一些成员,非要到子类中去完全的实现???刚刚说什么来着,人类都有一些共性的,只要子类中发现有完全相同的东西那么我们就可以把这些东西直接放到人类基类中,也就是说抽象类里的成员实现都是不断从子类中发现共同的方法属性重构出来了。那么好了,接口中不能实现成员也就意味着没有相同点,或者说接口更像是一种特殊的行为,超人是人不?是,符合人类特征,那么就可以继承人类基类,但超人会飞,那么就可以用接口定义,那么这个普通人也就有了特殊的能力:飞,也就成了超人。 --------------------编程问答-------------------- 什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致。个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的。注意,虽然在概念上,C#接口类似于COM接口,但他们的底层结构是不同的
--------------------编程问答-------------------- 路过, 学习了! --------------------编程问答-------------------- 认真学习一下 --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……


UP   够详细 --------------------编程问答-------------------- 学习了,貌似接口是只是一个标识,说明具备某种能力 --------------------编程问答-------------------- 我是学JAVA的,个人觉得接口就是我们学生用的学生证,他只是对人说我是学生证,使用的人只要知道它在什么地方能用就行了。 --------------------编程问答-------------------- 学习,学习! --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……


学习,学习! --------------------编程问答-------------------- [img=http://][/img]http:// --------------------编程问答-------------------- 学习,学习 --------------------编程问答-------------------- 一种类的他老爸,儿子一定要有老爸的基因,但儿子也可以玩个性! --------------------编程问答-------------------- 只定义,不实现 --------------------编程问答-------------------- 讨论热列,
mark --------------------编程问答-------------------- 2楼貌似说上瘾了 听着 --------------------编程问答--------------------
引用 7 楼 liuh6 的回复:
顶楼上说的很生动,

抽像是can do 接口是is a 陈广的概述!~

说反了吧 --------------------编程问答-------------------- http://topic.csdn.net/u/20091023/10/cbb4b6b8-fd57-4632-938f-6dbbc076909e.html --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……


zan! --------------------编程问答-------------------- 一个接口可以有多个实现的方法.
比如说你要买本是一个接口
你是买宏碁的,联想的,索尼的还是惠普的就属于此接口下的方法 --------------------编程问答-------------------- 学习了。。。 --------------------编程问答-------------------- 接口只包含只有方法,属性,索引器(有参属性),事件四种成员。方法的实现是在实现接口的类中完成的。建议阅读《C#入门经典》。 --------------------编程问答-------------------- --------------------编程问答-------------------- 阐述得够清楚了啊 --------------------编程问答-------------------- 只定义方法不实现的东东,然后你以后就可以定义类去继承这个接口,然后在类中去实现其方法,例如你把人定义为一个接口,那么有个方法work(),那么工人实现该方法是炼铁,教师实现该方法是教书,这样就可以定义不同的类。 --------------------编程问答-------------------- 我也想知道 --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 受教了 --------------------编程问答-------------------- 说了 也是白说  用多了就知道了  还有抽象类呢 --------------------编程问答-------------------- chopper7278
 
(快乐乔巴) 

是个好同志,比只抛出一个连接,尤其是直接贴msdn的(这还用你帖?不如直接告诉他接口就是interface算了),还有全是代码而且很大例子的那种要强的多,何为新手?人家就是那边看了没看懂才来问的,又给抛回去了有什么意义,用自己的理解生动的给新同志答疑解惑一番,对自己也是个巩固有什么不好,这才是这个论坛开设的意义,换句话说,如果看不起那问题,懒得给他废话,没有诚意认真答复,就不要回帖,楼主应该把分全给chopper7278(快乐乔巴)  --------------------编程问答-------------------- 接口 定义一组契约。继承它的类必须实现接口的方法。继承接口的类和接口是  Can Do  的关系。

抽象类还是类,里面有抽象方法。 继承它的类,必须重写(override)抽象类的抽象方法。 抽象类和继承它的类之间是 IS A  的 关系。

接口是能做什么。。。

抽象类是继承关系。。。(继承它的类 覆盖 抽象类的抽象方法)

多态的时候,要考虑用接口还是抽象类。 --------------------编程问答-------------------- 打酱油的 --------------------编程问答-------------------- 接口就像大门 --------------------编程问答-------------------- 接口 就相当于制定了一份合同,继承它的类必须遵守。

抽象类说到底,还是IS A 继承关系。

接口一旦制定了,将来更改接口,继承它的类,就必须更改。

抽象类就灵活一些,可以加个方法不影响继承它的类。 --------------------编程问答-------------------- 接口的唯一作用是规范 --------------------编程问答-------------------- --------------------编程问答-------------------- 你找女朋友,目标肯定是实现了 IGirl 这个接口的对象,否则。。。

IGril 定义如下:

interface IGirl
{
bool 漂亮;
bool 体贴;
bool 做饭好吃;
bool 会织毛衣;
}


作为接口的使用方,你可以写下 FindAGirlFriend 函数如下:
// 十有八九返回null
IGirl FindAGirlFriend(IList<IGirl> girls)
{
foreach(IGirl g in girls)
{
if (g.漂亮 && g.体贴 && g.做饭好吃 && g.会织毛衣)
{
return g;
}
}
return null;
}


与此同时,IGirl 的实现方正在紧锣密鼓的实现它,有个人写了一个 LazyGirl 类,另一个人写了一个 UglyGirl 类,还有一个人写了一个 StupidGirl。接口的一个好处是,你不用等这些类写好以后再写 FindAGirlFriend 函数。使用方和实现方可以同时工作。

--------------------编程问答-------------------- 接口就是你和你弟弟,在两个封闭的房间各自同时做一个家具的不同部分,在这之前约定好的一些东西。 --------------------编程问答-------------------- 就是用于规范子类的  一个类继承一个借口 必须实现里面的所有方法。
接口是一个特殊的类 是最抽象的 里面可以有属性方法索引器,成员不需要访问修饰符  默认为public  --------------------编程问答-------------------- 接口实现了方法与定义的低耦合 --------------------编程问答-------------------- 呵呵,讨论很精彩 --------------------编程问答-------------------- 我现在正在写很多同硬件打交道的系统,要供应商给的接口就是硬件供应商提供的.dll文件,引用.dll文件后,就可用它里面的方法,从而实现对硬件的调用 --------------------编程问答-------------------- 扩展类继承的公共约定的一种形式!
那定义偶可不知道如果问定义还是去BAIDU吧 --------------------编程问答-------------------- 学习中。。。。 --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 混点分,没办法, --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……

 够形象、够生动 --------------------编程问答-------------------- 好牛呀。那个用银行卡去解释接口,这个例子真的好形象呀。 --------------------编程问答-------------------- 我觉得快乐乔巴是个很好很有责任的同志!太上老君是个很会说实话的人!
我力挺这两位!
接口  规范了一种规矩   使用这种规矩做事!做什么事自己决定!但是你的方法别人都认可! --------------------编程问答-------------------- 这么多生动的例子,真是过目不忘啊,以前背了为了面试不知道背了多少遍接口的定义。嘿嘿。我觉得CSDN就应该这样。很小的问题,其实藏着很大的道理 --------------------编程问答-------------------- 一个人不能接口
很多人最好接口
哈哈. --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……

YM巴乔解释帝~ --------------------编程问答-------------------- 接口(C# 参考)   接口只包含只有方法,属性,索引器(有参属性),事件四种成员。方法的实现是在实现接口的类中完成的,如下面的示例所示:   interface ISampleInterface   {   void SampleMethod();   }   class ImplementationClass : ISampleInterface   {   // Explicit interface member implementation:   void ISampleInterface.SampleMethod()   {   // Method implementation.   }   static void Main()   {   // Declare an interface instance.   ISampleInterface obj = new ImplementationClass();   // Call the member.   obj.SampleMethod();   }   }   ---------------------------------------------------------------------------------------------------------   备注:   接口可以是命名空间或类的成员,并且可以包含下列成员的签名:   ·方法   ·属性   ·索引器 --------------------编程问答--------------------
引用 42 楼 chopper7278 的回复:


乔巴,你做coder浪费人才列~~~ --------------------编程问答-------------------- (快乐乔巴)
说的很生动、好理解
Mark --------------------编程问答-------------------- 呵呵 透彻! --------------------编程问答-------------------- 接口是一个动作的抽象需要具体的类 来实现它 就行飞这个接口 不同的事物会实现这个接口 实现的时候结果不一样 比如飞机飞 鸟飞就是不一样的两个实现 --------------------编程问答-------------------- 学习  学习 !!! --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
引用楼主 zhisheng2008 的回复:
C#接口是什么意思,注,新手

其实,就是C#留给我们,方便给程序扩展而已,就叫接口
--------------------编程问答-------------------- 接口就是一堆函数名字,不同的类有相同的函数,你调用就方便了 --------------------编程问答-------------------- usb接口知道不,原理就是那样 --------------------编程问答-------------------- 学习了! --------------------编程问答-------------------- 快乐乔巴在大家的鼓舞下说得是越来越带劲!

确实解释得好! --------------------编程问答-------------------- --------------------编程问答-------------------- 引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……


--------------------编程问答-------------------- --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋……


讲的太好了 --------------------编程问答-------------------- 接口提供固定的方法签名,其中的方法体有程序员自由编写而实现不同的功能。 --------------------编程问答--------------------
引用 2 楼 chopper7278 的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋超……


相当精辟 --------------------编程问答-------------------- +
引用 56 楼 phil999 的回复:
你找女朋友,目标肯定是实现了 IGirl 这个接口的对象,否则。。。

IGril 定义如下:


C# code
interface IGirl
{
bool 漂亮;
bool 体贴;
bool 做饭好吃;
bool 会织毛衣;
}


作为接口的使用方,你可以写下 FindAGirlFriend 函数如下:

C# code
// 十有八九返回null
I……
--------------------编程问答-------------------- 说得很多!
    路过学习! --------------------编程问答-------------------- --------------------编程问答-------------------- 受益匪浅哈 --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/87d83y5b(VS.80).aspx --------------------编程问答--------------------
引用 2 楼  的回复:
契约,规范
就好比银行卡的银联,不管工商银行,农业银行都有银联的标志是吧,你如果拿了个没有银联的卡多不方便,这个银联就是接口,只要你继承它的借口实现银联这个功能,走到哪人家都认阿。
接口还能多继承,就像人不是每一个人的能力都一样吧,比如咸蛋超人,和普通人有啥区别?会飞是不,普通人会吗?就像一个特殊能力,这时候你可以利用到接口了,普通人的类继承一个会飞的接口,并实现飞的方法,那么这个人就是咸蛋……


顶起 --------------------编程问答-------------------- 说得不错,很好理解 --------------------编程问答-------------------- 简单的说接口定义了类的行为 --------------------编程问答-------------------- 接口实现的是一些特殊功能,是抽象类中不具备的功能。就像咸蛋超人会飞,“飞”这个特殊方法就可以用一个接口来实现~ --------------------编程问答--------------------
引用 4 楼  的回复:
看1楼MSDN上的。。。。。

++
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,