求解:Java里的接口(interface)的作用,什么情况下会用到接口

lyn0032 2010-04-25 11:08:09
如果您想说,java不支持多继承,但是支持多接口,可以用接口实现多继承类似的话,那就免了。

求实际应用,可以给出常用接口实例最好了。还有在解决某个问题的时候,为什么您想到了使用接口,使用这个接口有什么作用或者好处。

小弟跪拜了先
...全文
387 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangran3 2012-02-09
  • 打赏
  • 举报
回复
很久以前 听老师说 继承是纵向的发展滴 接口是横向的发展滴
fyhack 2010-04-25
  • 打赏
  • 举报
回复
抽象的无法具体实现的就用抽象类(接口)啊,
像“形状”是个接口,但他派生的“圆”,“正方体”...就是一个个实例类了
SealedBook 2010-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jackmtlee 的回复:]
PS:楼主的头像,可以看作爱因斯坦教授实现了梦露接口,或梦露实现了爱因斯坦教授接口。
[/Quote]
....无语..
jackmtlee 2010-04-25
  • 打赏
  • 举报
回复
接口就像疫苗,打上了就具有这方面的免疫力了,建议楼主直接看JDK中的常用接口,比如Runable,Cloneable.
PS:楼主的头像,可以看作爱因斯坦教授实现了梦露接口,或梦露实现了爱因斯坦教授接口。
cjf068 2010-04-25
  • 打赏
  • 举报
回复
jdk类库中n多

Collection是集合的接口,它定义了大部分集合(除map结构的集合)的公用特性,如果你觉得jdk实现不爽,你自己一样可以实现你的集合,接口的好处就在于不管实现,只管协议(也就是暴露出来的方法),具体实现由实现者搞定
很简单的一个,数据库有N多厂商,如果Statement,ResultSet等不定义为接口,每个厂商各搞一套,你编写jdbc程序就会累死你;但是sun定义了这些接口作为协议,各个数据库厂商只需要实现定义的接口就可以了,程序员根本不用管各个厂商底层是怎么实现的.

就这么简单,抽象出公共的协议,屏蔽底层实现
Crzjtp_AN 2010-04-25
  • 打赏
  • 举报
回复
顶下!!
lyn0032 2010-04-25
  • 打赏
  • 举报
回复
虽然经常用到Runnable跟事件鉴定器等接口,但是还总是不太明白接口到底是什么- -!当遇到从来没有用过的接口时就很纠结...总是想不明白,这玩意是干嘛用的呀...

接口?用来描述某事物的属性,虚基类?用来定义对外函数?

额~~接口和多继承没有关系呀,我以前都是这么理解接口滴...

贴 ajoo(聪明的一猪)的关于接口的回复在这里,结合各位的回复继续学习。

接口就是当你的模块需要外面提供一个功能的时候,你用来定义你期望的功能是什么样的。
它作为对你的需要的一个规范,一个描述。
你通过接口,精确描述你需要的“功能”,然后从外界接收一个该接口的对象。
然后,你就可以使用这个接口了。

它让你关注“接口”,关注“规范”,而不是“实现”。别人怎么实现,那是别人的事,与我无关。你可以对你自己需要实现的东西编码,编译,测试,即使你需要的功能别人还没有实现出来。

根据需要,别人可以向你的模块传递不同的接口实现,从而达到重用的目的。

举个例子:
你给人写一个旅游指南:“先乘车去北海,在此吃午餐,下午去故宫。”
至于乘bus还是taxi, 吃包子还是麦当劳,下午怎么去故宫,不要越俎代庖,使用者可以根据自己的客观情况决定。
于是,乘车,吃午餐,去故宫,全是接口。你只管写你关心的逻辑,至于一些你不关心的实现细节,用接口抽象出来。

最后:接口和多重继承没有关系。
aSysBang 2010-04-25
  • 打赏
  • 举报
回复
接口 可以起到屏蔽的作用 尤其在做SSH开发时 baseDao 肯定有很多方法的 但是并不是每个子类都会用到所有的方法 这时 就可以通过接口来 决定 对外公开哪些方法
Altman2010 2010-04-25
  • 打赏
  • 举报
回复
接口如同电脑上的USB接口一样!用途就是它里面包含了很多为实现的类的方法!
cclsoft 2010-04-25
  • 打赏
  • 举报
回复
一类事物或几类事物的共同特征
kimiH 2010-04-25
  • 打赏
  • 举报
回复
你只要知道如何写,到写项目时用到,自然会明白!
Eayun1117 2010-04-25
  • 打赏
  • 举报
回复
类与类之间的通信因为接口而变的简单易懂,接口不需要考虑实现……
Lynn_20043745 2010-04-25
  • 打赏
  • 举报
回复
接口是对一些共同行为的抽象,接口可以认为是一种规范,限制了其子类的行为。增加了程序的健壮性,便于维护和扩展。
zfq642773391 2010-04-25
  • 打赏
  • 举报
回复

public class LinkedList<E>extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, Serializable

这是jdk中linkedList实现的接口
实现这些接口后,你可以把它当做一下的任何一种接口类型使用,因为他实现了List<E>, Deque<E>,接口的方法,Cloneable,Serializable是标识接口,标识这个类可以复制和序列化
接口多继承可以扩展一个类的作用
同样,一个类也可向上转型来使用
比如你可以把LindedList对象转型为List来使用

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧