日期:2014-05-20  浏览次数:20723 次

关于接口的理解问题
java学习的基础书看了1,2遍了。不同的书也看过,基本对java有一定的了解。

对于接口,感觉比较迷茫。

接口也知道书本中写的一些使用接口的规范,也知道接口多线程、接口序列化、接口监听等用到接口。

但还是迷茫,自己写程序,比如一些实用的程序,不知道什么情况下必须用接口~!
对于接口自己使用比较迷茫,估计跟初学,不是太熟练不是太董,有关。只懂得按照书本上,监听程序代码用接口,我也照抄。

所以,想请各位达人帮忙给点接口的范例,多说明为什么必须用接口。或者把接口说得比较深入比较详细的一些文章给我。

谢谢了。

------解决方案--------------------
熟能生巧 再多看看设计模式会好些 在运用中体会
笼统地说
接口是制定标准和规范 should do 实现者之间有了共同的交互面
继承是赋予了某种能力 can do
对于concrete class而言 两者都是Type(Is a)
我们可以说ArrayList是一个List,也可以说是一个Object

------解决方案--------------------
等待高手亲临指导!
------解决方案--------------------
我还是觉得这句话比较经典。
接口是多态的体现~~
------解决方案--------------------
接口只定义了应该做什么,而没有定义该怎么做

所以,如果你的程序只有你一个人完成,且每个功能只有一种实现的方法,我想你可以,注意是可以,不用接口

如果有多人合作,你可能开发的快,可惜你需要的一个类,你的同伴还没有完成,你怎么办?等他吗?
如果是面向接口,你可以自己先写一个最简单的实现来调试你的代码,Spring这时是个好帮手。

如果一个功能有多种实现,比如导出文档。 有的要html的,有的是word/Excel/PPt/PDF 等等。
因为你无法预见他们到底需要什么,这时候,你可以用接口,要求每个实现只需要完成 export 方法就行。
然后你自己做了一个Excel的,以后按需要再完成其他的,而此时,你原来的程序根本不用修改,因为他们调用的是接口,而不是具体的某个实现类。
------解决方案--------------------
这是个老生常谈的问题了,我就不解释了,也怕自己解释不好,
楼主可以去看看设计模式的书,里面大部分都是接口的奇妙用法,
相信看后你会有所收获
------解决方案--------------------
java2000_net说的有道理哦
引用他的原话:
"然后你自己做了一个Excel的,以后按需要再完成其他的,而此时,你原来的程序根本不用修改,因为他们调用的是接口,而不是具体的某个实现类。"
以后怎么再完成呢,只要你编写个word类来继承那个接口就可以了,,是这样吧, java2000_net高手
------解决方案--------------------
顶 老紫竹 回答永远是那么具体
------解决方案--------------------
老紫竹 说的很有道理啊

------解决方案--------------------
java开发过程中,使用接口的好处是:当你调用别人的接口时候,可以不需要重部署,可以直接使用。而继承就不可以,必须要重新部署才能使用。
------解决方案--------------------
http://topic.csdn.net/u/20071229/20/50c600d9-8369-4c75-a53b-73249696082b.html
------解决方案--------------------
把这些文章都看懂了,面向对象就有小成了。
http://blog.csdn.net/Slugfest/archive/2008/01/10/2034359.aspx
------解决方案--------------------
这个不好说,等你写的程序多了,你自然会明白的,每个人都是这样的,就跟我大学时候看设计模式一样,一头迷茫,几年过来了,也就都豁然开朗了。别迷茫,这个是慢慢的一个过程。抽象的东西
------解决方案--------------------
接口是一种服务的约定,一般说明这个服务需什么样的数据,会提供怎样的数据处理,会返回什么数据.例如我们约定炉这个接口,其输入数据就是物体,它提供加热物体的处理,不返回东西.而我们现实中的电磁炉,煤炉就是炉的实现类.对象么,你们家实际用的炉子就是一个对象.
------解决方案--------------------
老紫竹说的很好,学习了
------解决方案--------------------
还有,java是单继承的,所以如果想继承自己写的更多的类的时候,肯定不能写成extends class1 class2 class3...
这个时候你需要继承多个接口,例如implements interface1 interface2,而这样做的目的就在于,能够继承多个实现对应于每一个接口的“实现类”。
并且方法中的参数也可以定义为接口类型,这样在传递参数的时候也可以转换成具体的类,这样的程序设计比较灵活。
我觉得还是得多用,有一天自己不知不觉就入门了~
------解决方案--------------------
同感
------解决方案--------------------
接口能实现多态
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------