关于接口的理解问题

webrobot 2008-02-26 12:42:16
加精
java学习的基础书看了1,2遍了。不同的书也看过,基本对java有一定的了解。

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

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

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

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

谢谢了。
...全文
1330 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
借我那把枪吧 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 java2000_net 的回复:]
接口只定义了应该做什么,而没有定义该怎么做

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

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

如果一个功能有多种实现,比如导出文档。 有的要html的,有的是word/Excel/PPt/PDF 等等。
因为你无法预见他们到底需要什么,这时候,你可以用接口,要求每个实现只需要完成 export 方法就行。
然后你自己做了一个Excel的,以后按需要再完成其他的,而此时,你原来的程序根本不用修改,因为他们调用的是接口,而不是具体的某个实现类。
[/Quote]
高手高手高高手
awtqty_zhang 2009-04-14
  • 打赏
  • 举报
回复
牛人就是牛人
学习了
hanwangabc 2009-04-13
  • 打赏
  • 举报
回复
接口是对行为的抽象,也就是说,接口是对某些行为进行抽象,派生类可以实现这些方法,但是这些派生类之间可以是无相关的,这一点和抽象类是不同的。当子类(或某几个类)需要共用一个方法,但是这几个类完全不相关,甚至概念都不一样时,则使用接口较为合适,在接口里定义方法列表即可。interface表示的是"like-a"关系
j2eeoriented 2009-03-12
  • 打赏
  • 举报
回复
接口:是实现者对调用者一种‘承诺’,是制定者对实现者的一种'协议';
换句话说,厂家对客户的‘功能’承诺,同时也是对生产者‘必须满足这些’的‘标准/协议’;

zixiakoma 2008-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 java2000_net 的回复:]
接口只定义了应该做什么,而没有定义该怎么做

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

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

如果一个功能有多种实现,比如导出文档。 有的要html的,有的是word/Ex…
[/Quote]

学习。
zixiakoma 2008-06-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 healer_kx 的回复:]
把这些文章都看懂了,面向对象就有小成了。
http://blog.csdn.net/Slugfest/archive/2008/01/10/2034359.aspx
[/Quote]

这个打不开,上面可以打开。
liuqinqin 2008-03-12
  • 打赏
  • 举报
回复
插座板,大家都用吧,

你用笔记本的电源插上可以.

你用电视机插上可以...

.....

这就是接口呀.

你不要知道他具体怎么实现,知道是什么东东,就可.
yue_hun 2008-03-11
  • 打赏
  • 举报
回复
一路看下来
学到了不少东西啊
hmsuccess 2008-03-06
  • 打赏
  • 举报
回复
学习
webrobot 2008-03-05
  • 打赏
  • 举报
回复
感谢楼上这么多兄弟传授。老紫竹 得话最靠近白话。跟我后来看书理解的贴近。
不过说真的,楼上除了几个兄弟,其他所有的兄弟的话,只是把java书籍的使用接口的简单的道理说出来。说实话,看了也等于白看。这些定义再书上都有。

问题就是为什么非要用到接口,什么情况下自己写程序要用到接口。并非简简单单可以多继承的问题。

看了楼上兄弟推荐的设计模式。刚看了第一个模式,策略模式,我终于明白了。

知识掌握的不一定很高,才学来的,先学现卖,给总结一下接口的用法。为什么非要用接口!

也为了广大之学习过java,但没有多少实践的人来说明一下。

对楼上兄弟们抱歉,最近在忙其它事情,也看了设计模式,所以这么长时间没来结贴。

下面总结一下。稍后!
webrobot 2008-03-05
  • 打赏
  • 举报
回复
楼上经验主义。呵呵。也对。有些理论东西理解,需要经验的。
设计模式的确有必要看看。看设计模式第一篇,也许1个小时时间就明白要这么做,为什么这么做。
但用经验,要实践很长时间,才能得出结论。

最好是理论+实践。呵呵。

我解释的关于为什么要用接口,或许太白话了,或许太模糊,大家看不董。所以最好招本设计模式的书看看。
第一篇策略模式,就能把为什么要用接口给说情数了。
gadfly1981 2008-03-05
  • 打赏
  • 举报
回复
没有必须用的,只要你愿意,你可以不用接口,不用继承,不用重载,
甚至一个main函数能搞定一切,
先写个程序仅有main函数,再把功能扩充起来,等代码量多了,你自然明白该怎么写才看起来舒服
webrobot 2008-03-05
  • 打赏
  • 举报
回复
爻力 的例子,阐述了 大头磊磊 第二就是你不需要知道别人的业务逻辑是怎么实现的,你只需要知道别人提供你什么接口,传递什么参数就可以啦。

解释了一方面。

呵呵,有分。
webrobot 2008-03-05
  • 打赏
  • 举报
回复
我的解释,仅仅策略模式先学先卖,知识浅薄见笑了。
将来看多了设计模式,或许还有其他认识方法。到时候再补充。呵呵
webrobot 2008-03-05
  • 打赏
  • 举报
回复
鸭子有飞翔、叫 等行为。
不可以使用继承。因为某种鸭子,比如机器鸭子,不会飞。所以不能单独继承。
继承的话,你也可以把鸭子飞的动作重写成没动作。但对于以后增加其他的种类的鸭子来说,每个都写,不现实。

所以要用接口。巴飞翔、叫,用接口来实现! (很多学习java基本知识的时候,认识面就到这个层次!只知道使用接口可以多继承。)
下面接着说,比如有的鸭子会刮刮叫,有的鸭子回哈哈叫,有的鸭子不会叫。
那么用接口来实现,不等于吧每个接口重的行为都重新写一边么。

比如,鸭子有10中叫的方法,你用接口继承这些叫唤的方法,不等于每次是用要把10中叫的方法重新写一边?
而且以后每次增加叫的方法,也要把以前继承的写过的类,重新巴新加入的方法写一边。

不现实。所以简单的用接口也不行!!!!!! (这个层次,学习java基础知识100编的人都不可能认识到!)
哪怎么办呢?把叫唤的行为提出来,作为接口

各种叫法,比如呱呱叫继承这个接口。哈哈叫也继承!



使用的时候申明一下,即可是用某种叫法。而且其他利用到接口的其他种类鸭子,以后新增叫法,继承接口,使用,也不会影响。

某种鸭子的某些初始行为,可以在构造函数中申明好。比如使用set定义某种行为。使用的时候,就直接出现某种行为了。

好了,解释完毕,我最后一行,使用的时候的说明,有点模糊。
要详细写清数,必须用代码结合文字来说明。但没那么多的篇幅写上去。

感兴趣的朋友,可以招本设计模式来看看!

上面真正有为什么使用某些东西的详细说明。而不仅仅局限于怎么使用。

java基础书上,往往局限于怎么使用。还有一点简单的道理。


爻力的回答,暂时没看,稍候看看。最后在结分!
webrobot 2008-03-05
  • 打赏
  • 举报
回复
鸭子有飞翔、叫 等行为。
不可以使用继承。因为某种鸭子,比如机器鸭子,不会飞。所以不能单独继承。
继承的话,你也可以把鸭子飞的动作重写成没动作。但对于以后增加其他的种类的鸭子来说,每个都写,不现实。

所以要用接口。巴飞翔、叫,用接口来实现! (很多学习java基本知识的时候,认识面就到这个层次!)
只知道使用接口可以多继承。

下面接着说,比如有的鸭子会刮刮叫,有的鸭子回哈哈叫,有的鸭子不会叫。
那么用接口来实现,不等于吧每个接口重的行为都重新写一边么。

比如,鸭子有10中叫的方法,你用接口继承这些叫唤的方法,不等于每次是用要把10中叫的方法重新写一边?
而且以后每次增加叫的方法,也要把以前继承的写过的类,重新巴新加入的方法写一边。

不现实。所以简单的用接口也不行!!!!!! (这个层次,学习java基础知识100编的人都不可能认识到!)

哪怎么办呢巴叫唤的行为提出来,作为接口

各种叫法,比如呱呱叫继承这个接口。哈哈叫也继承!

爻力的回答,暂时没看,稍候看看。最后在结分!

使用的时候申明一下,即可是用某种叫法。而且其他利用到接口的其他种类鸭子,以后新增叫法,继承接口,使用,也不会影响。

某种鸭子的某些初始行为,可以在构造函数中申明好。比如使用set定义某种行为。使用的时候,就直接出现某种行为了。

好了,解释完毕,我最后一行,使用的时候的说明,有点模糊。
要详细写清数,必须用代码结合文字来说明。但没那么多的篇幅写上去。

感兴趣的朋友,可以招本设计模式来看看!

上面真正有为什么使用某些东西的详细说明。而不仅仅局限于怎么使用。

java基础书上,往往局限于怎么使用。还有一点简单的道理。



foundercy_weng 2008-02-28
  • 打赏
  • 举报
回复
我认为接口无非就是第一 为了多种实现而生
第二就是你不需要知道别人的业务逻辑是怎么实现的,你只需要知道别人提供你什么接口,传递什么参数就可以啦。
第三就是为了实现代码的重用。
healer_kx 2008-02-27
  • 打赏
  • 举报
回复
理解接口很重要,10个人就理解出10样来。而且自己理解完后,都不知道对错,而且总是以为自己说得就是正确的。
15楼说的就是不正确的,所以,我建议你们还是找点正宗系统的资料看吧。
guoqiangone 2008-02-27
  • 打赏
  • 举报
回复
不能光看书,要在实际操作中理解。
superdanpi 2008-02-27
  • 打赏
  • 举报
回复
up
加载更多回复(28)

62,614

社区成员

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

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