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

C#中接口的理解

本人刚学C#不久,关于接口的理解不是很深,问题如下

接口的定义为:
接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的

疑惑在于,接口既然不实现方法或事件属性,实现还是在继承这个接口的类中完成,那么还继承这个接口有什么用呢?为什么不直接在类中写一个方法或者属性呢?还要多此一举继承这个接口呢?

望得到大家的帮助 --------------------编程问答-------------------- 程序架构灵活,可复用。实现了这个接口,就可以拥有某些功能。要面向接口编程,而非实现编程。 --------------------编程问答-------------------- 一个接口可以对应多个实现,如果程序由两个人开发,一个开发调用接口,一个开发实现接口。那么开发调用接口的人编写好了代码,另一个人只要给接口传不同实现的对象,就可以扩展功能而第一个人就可以不用管啦。

之所以你不理解因为程序都是你一个人写的,哪里都可以改。在一个很大的项目中,肯定你希望你完成了你的任务,你的同事要想修改他的程序,不用老麻烦你。 --------------------编程问答-------------------- 二楼说的对,顶下 --------------------编程问答-------------------- 2楼说的是工程上的好处

但他的实际语义是概念或通用功能。这些是被抽象出来滴玩意。而我们有时候并不关心具体类,我们只关心这些抽象和通用功能

比如俺炒股,现在比较火滴是 I房地产概念,I水泥概念,I美丽中国概念,I城镇化概念,I高业绩高分红概念
虽然具体到一个公司,他的去具体实现买地,烧水泥,盖房子,卖房子滴方法,但是对于炒股来说俺们不关心他怎么做滴,俺们关心的是他是否具有这种我想要的概念

另外说一句,概念是被抽象滴,原本他木有,他被人抽象后,又可以人为赋予给其他人重复使用。
比如上面的I美丽中国概念,I城镇化概念 这些是以前木有滴,是十八大以后被gov抽象出来,而后被企业套用,并且以后仍然可以套用的东西,这些就接口 --------------------编程问答-------------------- 我可以先假设一下
如果gov说我们要大力发展城镇化,打造美丽中国,我们要大力扶植可以完成这个目标的企业,如果该企业能完成这个目标,我们给他资金,给他政策,让他发展。

好吧,现在有个企业想依靠gov这个提法获得政府支持,他能怎么干?当然是先给自己戴上这个帽子,然后完成一些必须完成的硬指标,然后吗--你懂滴

也就是说接口不是平白无故的出现的,接口的上面对应一个或多个管理类。管理类不关心具体实现,他只关心这个接口的一些必须的硬指标。 就像上面的国家他是管理类,“城镇化”“美丽中国”是这个管理类的期望关心的,国家并不关心企业具体经营实现,他更关心谁能完成这个概念
--------------------编程问答--------------------
引用 5 楼 wanghui0380 的回复:
我可以先假设一下
如果gov说我们要大力发展城镇化,打造美丽中国,我们要大力扶植可以完成这个目标的企业,如果该企业能完成这个目标,我们给他资金,给他政策,让他发展。

好吧,现在有个企业想依靠gov这个提法获得政府支持,他能怎么干?当然是先给自己戴上这个帽子,然后完成一些必须完成的硬指标,然后吗--你懂滴

也就是说接口不是平白无故的出现的,接口的上面对应一个或……


谢谢啊  解释的很好,新手,有些细节问题理解的不够透彻,现在好多了 --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
一个接口可以对应多个实现,如果程序由两个人开发,一个开发调用接口,一个开发实现接口。那么开发调用接口的人编写好了代码,另一个人只要给接口传不同实现的对象,就可以扩展功能而第一个人就可以不用管啦。

之所以你不理解因为程序都是你一个人写的,哪里都可以改。在一个很大的项目中,肯定你希望你完成了你的任务,你的同事要想修改他的程序,不用老麻烦你。


嗯,自己看了一些技术博客,现在理解透彻多了 --------------------编程问答-------------------- 一句话可以解释,接口是为了让其它调用能够查询到此接口。 --------------------编程问答-------------------- 学习了。现在理解透彻多了  --------------------编程问答-------------------- 顶了   楼主咋不给大神们散分。。。 --------------------编程问答-------------------- 感谢各位大神的不吝赐教!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,