免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13537 | 回复: 14
打印 上一主题 下一主题

请教JAVA中interface的作用? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-22 20:25 |只看该作者 |倒序浏览
最好能讲一个例子!Thanks!

论坛徽章:
0
2 [报告]
发表于 2004-06-22 20:34 |只看该作者

请教JAVA中interface的作用?

Thanks!!路过

论坛徽章:
0
3 [报告]
发表于 2004-06-22 20:55 |只看该作者

请教JAVA中interface的作用?

[quote]原帖由 "牙齿晒太阳"]Thanks!!路过[/quote 发表:



什么意思?

论坛徽章:
0
4 [报告]
发表于 2004-06-22 22:31 |只看该作者

请教JAVA中interface的作用?

我也学java也才半年多,说一下我对interface的感觉吧。
1 interface的作用是让使用inerface的人不知道它是怎么实现的,但调用这结方法就好使。就像是收歀台,它的方法就是收钱。你把钱给它,它给你零钱。你不用管它用的是电脑还是算盘。它也不想让你知道。反正功能实现了。
2 当你在使用inerface时,一定是用的implements里的方法,而且经常这么用。List l = new ArrayList() ; List是接口,ArrayList是它的实现。这后还很有可能有个方法是这样的 public void m1(List l){...}.这里写List是让这个方法更通用些,只要是List 的实现就能用。就好比这个款台,台子是一样的,但钱可以不一样。可是美元,也可以是元宝。但它们都是“钱”的实现,“钱”本身没有意义。
3 implements 和 extends 。implements是向老师学习,我可以拜很多的人为师,从而我就有了这些人的本领,但我还是我,不过本事大了些;extends 就是认爸爸。一个人就一个爸,同样我有了爸爸的本领,你可以替你爸去从军,但不能替别的老头子,我也不能再认别的爸了,但可以认老师,几个都没关系。这之间也许还有别的区别,不过我还没遇到过。
  还有一些,我也说不来了。我还分不太清什么时候用接口或是抽象类,不过我用接口的情况多些。有人对我说,最好是一个类对应一个接口,我还不理解它的意义有多大,不过大家都是这么写的。换句话说,一个类好不要凭空就出来,最差也要继承个抽象类。这都是书本上的,记住了,但没什么感觉。
   以上只是我的一点认识,用的都是土话,仅供参考。

论坛徽章:
0
5 [报告]
发表于 2004-06-23 09:00 |只看该作者

请教JAVA中interface的作用?

原帖由 "amu23" 发表:
我也学java也才半年多,说一下我对interface的感觉吧。
1 interface的作用是让使用inerface的人不知道它是怎么实现的,但调用这结方法就好使。就像是收歀台,它的方法就是收钱。你把钱给它,它给你零钱。你不用管它..........


Thanks!

论坛徽章:
0
6 [报告]
发表于 2004-06-23 10:02 |只看该作者

请教JAVA中interface的作用?

amu23,写的不错,比较通俗易懂,大家鼓掌。
  其实,我觉得接口就是一种约定,或者说是某种标准,既然这样,接口就应该在设计阶段做好,之后就不应该经常修改,其实到编码阶段再来修改接口,那肯定是逼不得已的情况,而且应该绝对避免的。
  记得大富翁论坛上的孙老师(如果记错了,请莫怪)有个很好的例子,比如说功放,接口规定了它的标准,如输入输出功率,电流,电压等,而具体到特定的功放,如索尼的,爱华的,他们按这个标准实现了功放具体的功能,这些功放对外的标准是一样的,可以接在任何音频输出设备上,而内部的实现当然都用它们自己的技术,各不相同。这样,在设计音频输出设备,如DVD,VCD,电视等,就不用考虑跟某种具体的功放如何连接工作了,它们只要按照功放的接口标准设计就一定可以跟任何具体的功放对接。
  在设计面向对象程序的时候也一样的,如何让我们的程序据有更大的扩展性呢,那就充分使用接口吧。如下面的代码:

  1. ...
  2. // 从配置文件中读取用那个类来实现系统的存储功能
  3. String storageClassName = Factory.getConfig("storage.className");
  4. // 实例化这个类, Storage是个接口
  5. Storage storage = (Storage)Class.forName(storageClassName).newInstance();
  6. // 这里的User也是个接口,参数xyz是用户名
  7. User user = storage.getUserData("xyz");
  8. ....
复制代码

这样写的好处是,我们可以通过配置文件来决定使用哪个具体的存储方式,如用XML文件存储,或存储到数据库中等,而程序不需要任何修改,如果我们的产品足够好,甚至可以使用第三方开发的存储类。

  那么,什么时候应该使用抽象类,什么时候该使用接口呢?我们知道,接口中只能定义方法名,方法参数和返回值,以及静态变量。而抽象类中可以有方法的实现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。所以,当你需要多继承特性时,那你只能使用接口;当你需要在父类中实现部分代码,但该类不希望被实例化时,那就设计为抽象类。一个基本原则是,首先考虑使用接口。

论坛徽章:
0
7 [报告]
发表于 2004-06-23 15:10 |只看该作者

请教JAVA中interface的作用?

这个问题比较有意思!
有人说面向对象编程就是面向接口编程,这话一点儿也不假。接口应该体现了面向对象的核心思想在里面,换句话讲应该说接口抽象出具体事物的外在共性,然而不同的类的相同的接口函数的内在实现机制是不同的,这又体现了具体事物的特性。举个例子,对于所有的商店都提供卖东西的功能,这就可以抽象成一个接口,这个接口里面可以提供buy()这个函数,然而各个商店的卖东西是不一样的,也就是BUY()函数实现不一样的!不好意思,我要下了,改天有空接着写!

论坛徽章:
0
8 [报告]
发表于 2004-06-29 14:37 |只看该作者

请教JAVA中interface的作用?

接口就是给高级设计人员用的,他用接口可以快速的描述一个系统,定义好各个组件之间的协作规则,然后在具体实现阶段实现这些接口,可以作为一个隔离层,隐藏底层实现细节。
还有个弥补多个类继承的功能。

个人观点

论坛徽章:
0
9 [报告]
发表于 2004-07-09 14:32 |只看该作者

请教JAVA中interface的作用?

去看看jdbc,你就能体会到接口的作用。
不过我觉得应该注意一点:“变成语言上的定义,改变,或者进步,都有一个目标,那就是让代码编写更容易,让代码修改更容易,让不熟悉够架的人取读懂代码更困难”

呵呵。。。。。。。

论坛徽章:
0
10 [报告]
发表于 2004-07-11 15:14 |只看该作者

请教JAVA中interface的作用?

http://www-900.ibm.com/developerWorks/cn/java/l-javainterface-abstract/index.shtml
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP