接口!接口!接口!为什么要用接口,接口有什么用?菜鸟问问。。。

OracleCer 2010-11-01 09:10:48
偶菜菜,学习面向对象也有快两个月了,然而对接口这个东西还是很是疑惑,尤其这几天研究ARCEngine,面对铺天盖地的“I××”都崩溃了,各位大大们救救我吧。小弟的疑问主要有如下两个方面

第一个,以前听过一个java班的老师讲,接口是大家的通信协议,项目A的第一小组和第二小组通过接口把程序结合起来,项目就 搞定了。不明白的是大家都继承自这个接口,但是各自实现各自的方法,这样不是前言不搭后语吗,程序怎么能结合到一起呢?

第二个,ARCEngine不知道有没有这个的朋友,是一个地信二次开发方面的kit,它给出了,大量的接口,每次用接口的时候都是"IAA a = new bbclass();"。不明白为什么要这么设计,直接给出类来,我就new各种对象不是更方便吗?

而且,我总觉得这两个问题中的接口好像不是一个概念似的。。。。。。。。。。。。

头大了,头大了!

各位达人s,帮帮小弟的吧;
...全文
100 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
水中影子 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 boyone2009 的回复:]

接口首先可以解决java不能多继承问题, 其次用接口降低了程序的耦合性, 还有使用接口可以再运行时修改实例。 例如: List list = new ArrayList(); 其中=List是接口, ArrayList是实现类。 当然也可以用
List list = new LinkedList(); 看我们可以随意改变它的实现类, 从而达到不同的目的。
[/Quote]

楼上说的对,通过接口可以达到不同目的
无伤 2010-11-02
  • 打赏
  • 举报
回复
接口首先可以解决java不能多继承问题, 其次用接口降低了程序的耦合性, 还有使用接口可以再运行时修改实例。 例如: List list = new ArrayList(); 其中=List是接口, ArrayList是实现类。 当然也可以用
List list = new LinkedList(); 看我们可以随意改变它的实现类, 从而达到不同的目的。
elmnd 2010-11-02
  • 打赏
  • 举报
回复
你妈妈生下了几个孩子, 孩子是接口, 具体哪个孩子实例是实现类;

可是实现不同的情况。
iBase = new instanceA();
iBase = new instanceB();

接口类可以对实现类有一定的限制;实现类对接口类有补充。
龙生九子,子子不同。哈哈。
龙四 2010-11-02
  • 打赏
  • 举报
回复
没亲身体验过设计模式的好处是难以理解接口的作用的
lijie417317938 2010-11-02
  • 打赏
  • 举报
回复
哈哈,完全不懂。
yqj2065 2010-11-02
  • 打赏
  • 举报
回复
"这两个问题中的接口好像不是一个概念似的"
-----你是对的。

接口是大家的通信协议...指的是方法的接口,接口与实现的分离或许是软件工程中最重要的概念。在此基础上开发的并行成为可能。
Brooks说:你无法让9个妇女在一个月内生产一个婴儿,而David Parnas使得同步开发成为可能,就在于接口。

每次用接口的时候都是"IAA a = new bbclass();"....指的是一种数据类型。interface是纯粹的方法接口组成的数据抽象。“Java接口是它的各种各样实现类的占位符,它隐藏了实现类的具体类型。Java接口的作用通过多态而体现。”
“不明白为什么要这么设计,直接给出类来....”,请理解“针对接口编程而不要针对实现编程”,
voice1122 2010-11-01
  • 打赏
  • 举报
回复
java中的接口实际上就是一种抽象类,只定义方法体,不具体实现。
我个人认为接口是为OOP的多态而设计的,继承接口的不同类各自实现接口中定义的方法,以满足不同业务需求的需要,但其底层调用函数可以完全一样(因为接口一样。所以在定义接口的时候一定要认真设计方法体的参数和返回值,以适应不同的环境),这样可以将不同子类的引用赋值给同一接口(就像你所说的IAA a= new bbclass(),bbclass类应实现了接口IAA,是IAA的子类),实现了同一方法的多态。
接口起到了桥梁和平台的作用。对大型项目来说,一些接口可以起到骨架的作用,搭好了骨架,不同的项目组去开发上层应用,最后通过骨架进行拼接,完成整个系统的开发。

纯属个人见解。

50,550

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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