| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4890 人关注过本帖
标题:接口到底是用来干嘛的?
只看楼主 加入收藏
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
结帖率:100%
收藏
 问题点数:0 回复次数:8 
接口到底是用来干嘛的?
比如,我定义了一个接口 A,里面有两个抽象方法.
下面实现它的时候,需要对它进行重写,
我也知道,接口是可以多重继承的,而类不可以.
那如果实现多个接口,需要对多个抽象方法重写,定不定义接口不都一样么?
那请问定义接口的意义到底是什么呢?
搜索更多相关主题的帖子: 接口 定义 重写 继承 
2008-04-20 11:20
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
很有用的!

能让程序有很好的扩展性

UML上的开闭原则上会说到它的好处

当然还有其他的很多
2008-04-20 11:34
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
接口好处太多

找本面向对象的书看
再找本设计模式的书看,

你就不会再这样问了

Fight  to win  or  die...
2008-04-20 11:43
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
接口可以说有两种用途。
一是定义标准,你实现此接口就必须要实现接口里的方法。
二就是降低耦合度,那么多模式要解决的其实就是这个问题。
就像硬件里的插槽一样,比如说显卡的插槽,如果没有统一的接口,那你买电脑时,花了几千块买了个好显卡,一看和主板插槽对不上去,你会怎么想?而对于显卡制造商来说,它只要实现这个接口就好了。ati有ati的实现方法,nvedio有nvedio的实现方法。你买显卡还问它是怎么实现的吗?往主板上一插,显示器亮了不就行了???
2008-04-20 20:54
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
楼上的比喻很好啊,赞一个。

Fight  to win  or  die...
2008-04-20 23:58
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
呵呵,由那个比喻还可以引出不少设计模式。
比如你去买电脑了,肯定到电脑商家那去买,电脑商家就是个代理(代理模式)。而代理在进货的时候,会从各个厂家去提货,厂家就是工厂(工厂模式)。买完配件了,商家一般都给你组装,装完了再给你。你就能很方便的使用(外观模式)。现在奸商太多,整个过程你都得注意吧。一有不对就要做出反应。。。(观察者模式)还有,在显卡换代时,曾今出过一种主板,能在新主板上插agp显卡,这个就是(适配器模式)。。。。

[[it] 本帖最后由 huwangvs 于 2008-4-21 09:16 编辑 [/it]]
2008-04-21 09:04
alonestar0815
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-1-3
收藏
得分:0 
楼上比喻的真漂亮
2008-04-21 09:39
lxm520910
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2007-10-3
收藏
得分:0 
定义一个接口,里面有跑和跳的方法,任何一个类实现了该接口,都能跑和跳。  不管你是人还是其他别的。
接口就是定义一组抽象的方法,不相关的类可以实现这个接口,实现了后这些不相关的类就相关了。
2008-04-21 10:24
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
回复 4# 的帖子
呵呵~~~大概明白了.
接口就像一个标准,不同的类实现的方法不一样,但标准是一样的.

接口的实现,也就不用在一个类中写入所以要实现的所有方法.这样,如果其它类引用该类的时候,可以降低类与类的偶合度.

谢谢各位啦~~~
2008-04-21 10:43
快速回复:接口到底是用来干嘛的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020571 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved