搜索
编程论坛
→
开发语言
→
『 JAVA论坛 』
→ 接口到底是用来干嘛的?
标题:
接口到底是用来干嘛的?
只看楼主
meteor57
来 自:银河系
等 级:
新手上路
帖 子:267
专家分:0
注 册:2007-9-29
结帖率:
100%
楼主
问题点数:0 回复次数:8
接口到底是用来干嘛的?
比如,我定义了一个接口 A,里面有两个抽象方法.
下面实现它的时候,需要对它进行重写,
我也知道,接口是可以多重继承的,而类不可以.
那如果实现多个接口,需要对多个抽象方法重写,定不定义接口不都一样么?
那请问定义接口的意义到底是什么呢?
搜索更多相关主题的帖子:
接口
定义
重写
继承
2008-04-20 11:20
freish
等 级:
贵宾
威 望:
23
帖 子:1223
专家分:437
注 册:2007-6-1
第
2
楼
得分:0
很有用的!
能让程序有很好的扩展性
UML上的开闭原则上会说到它的好处
当然还有其他的很多
2008-04-20 11:34
aipb2007
来 自:CQU
等 级:
贵宾
威 望:
40
帖 子:2879
专家分:7
注 册:2007-3-18
第
3
楼
得分:0
接口好处太多
找本面向对象的书看
再找本设计模式的书看,
你就不会再这样问了
Fight to win or die...
2008-04-20 11:43
huwangvs
等 级:
贵宾
威 望:
34
帖 子:764
专家分:0
注 册:2007-2-4
第
4
楼
得分:0
接口可以说有两种用途。
一是定义标准,你实现此接口就必须要实现接口里的方法。
二就是降低耦合度,那么多模式要解决的其实就是这个问题。
就像硬件里的插槽一样,比如说显卡的插槽,如果没有统一的接口,那你买电脑时,花了几千块买了个好显卡,一看和主板插槽对不上去,你会怎么想?而对于显卡制造商来说,它只要实现这个接口就好了。ati有ati的实现方法,nvedio有nvedio的实现方法。你买显卡还问它是怎么实现的吗?往主板上一插,显示器亮了不就行了???
2008-04-20 20:54
aipb2007
来 自:CQU
等 级:
贵宾
威 望:
40
帖 子:2879
专家分:7
注 册:2007-3-18
第
5
楼
得分:0
楼上的比喻很好啊,赞一个。
Fight to win or die...
2008-04-20 23:58
huwangvs
等 级:
贵宾
威 望:
34
帖 子:764
专家分:0
注 册:2007-2-4
第
6
楼
得分:0
呵呵,由那个比喻还可以引出不少设计模式。
比如你去买电脑了,肯定到电脑商家那去买,电脑商家就是个代理(代理模式)。而代理在进货的时候,会从各个厂家去提货,厂家就是工厂(工厂模式)。买完配件了,商家一般都给你组装,装完了再给你。你就能很方便的使用(外观模式)。现在奸商太多,整个过程你都得注意吧。一有不对就要做出反应。。。(观察者模式)还有,在显卡换代时,曾今出过一种主板,能在新主板上插agp显卡,这个就是(适配器模式)。。。。
[[it] 本帖最后由 huwangvs 于 2008-4-21 09:16 编辑 [/it]]
2008-04-21 09:04
alonestar0815
等 级:
新手上路
帖 子:3
专家分:0
注 册:2008-1-3
第
7
楼
得分:0
楼上比喻的真漂亮
2008-04-21 09:39
lxm520910
等 级:
新手上路
帖 子:96
专家分:0
注 册:2007-10-3
第
8
楼
得分:0
定义一个接口,里面有跑和跳的方法,任何一个类实现了该接口,都能跑和跳。 不管你是人还是其他别的。
接口就是定义一组抽象的方法,不相关的类可以实现这个接口,实现了后这些不相关的类就相关了。
2008-04-21 10:24
meteor57
来 自:银河系
等 级:
新手上路
帖 子:267
专家分:0
注 册:2007-9-29
第
9
楼
得分:0
回复 4# 的帖子
呵呵~~~大概明白了.
接口就像一个标准,不同的类实现的方法不一样,但标准是一样的.
接口的实现,也就不用在一个类中写入所以要实现的所有方法.这样,如果其它类引用该类的时候,可以降低类与类的偶合度.
谢谢各位啦~~~
2008-04-21 10:43
9
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-210019-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.571209 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved