接口的概念???

sdudubing 2012-02-29 06:27:18
对这一“接口”的概念感觉总是理解不深啊,在看一些资料时总是提到这一概念,尤其是系统间相互联系时,将这一系统的接口给另一系统接口,等等。谁能详细给我介绍一下?
...全文
384 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 roy_smiling 的回复:]

说白了,就是函数~
[/Quote]

++
更严格点说就是可供其他对象调用的函数。以一个类的成员函数为例,通常其public成员函数可视为接口(接口函数)
liushuiyou_sheng 2012-03-01
  • 打赏
  • 举报
回复
这简单,举个简单的例子。
我写了一个add(a,b){return a+b}

我把这个add告诉你,你就能直接用。
Enter空格 2012-03-01
  • 打赏
  • 举报
回复
接口就是你只知道声明,实现却不以源码的形式出现在你的工程中的情况下.
调用这个声明,完成相关功能的操作,
这个声明就是接口.
windowsAPI,你就只知道声明,却不知道这些函数是怎么实现的,
这种情况下你调用这个声明,其实就是调用接口函数了。
彭家老三 2012-03-01
  • 打赏
  • 举报
回复
是不是可以这样理解? 就是一般A类不具备某个动作,但其中个别特殊的对象却可以做这个动作,那这个对象可以另外继承一个借口,以实现这个动作?比如:猪类一般不能飞,但猪八戒可以,所以他可以继承一个飞行的借口?
[Quote=引用 14 楼 pathuang68 的回复:]

引用 13 楼 roy_smiling 的回复:

说白了,就是函数~


++
更严格点说就是可供其他对象调用的函数。以一个类的成员函数为例,通常其public成员函数可视为接口(接口函数)
[/Quote]
lirunfa 2012-03-01
  • 打赏
  • 举报
回复
java中有接口的概念, 接口是不带实现的。
通俗的来讲,接口就是,我告诉你这个类有一个方法(接口),你用的时候直接调用这个方法(接口)就行,不需要知道内部是怎么实现的。
Roy_Smiling 2012-02-29
  • 打赏
  • 举报
回复
说白了,就是函数~
jxnuzhouguohong 2012-02-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shuimuniao 的回复:]

下面是我对接口的理解,仅仅是个人的理解。希望对你有帮助。
在用文字描述接口之前,我先给你一段代码:
int sortNumber(int* srcInput, int srcLen, int* dstOutput, int dstLen);
int main()
{
...//无论何种方式获得10个数字,scanf也好,固定的也好。
ret = sortNumber(……
[/Quote]

++
铁文 2012-02-29
  • 打赏
  • 举报
回复
现实中,开关是接口,因为人可以用它打开或关闭灯
类中,一个公有函数(即使是纯虚函数)是接口,因为可以在他处调用它
类、java中的“接口”、COM中的接口等,也是接口。
一句话:可以和他物发生关系的东西都叫接口。--》类中的私有成员绝对不可能成为接口
shuimuniao 2012-02-29
  • 打赏
  • 举报
回复
你这里对接口WritePrograme(IProgramer programer)的定义好像不准确。我不懂vb的语法。但按照面向对象的思想,形参应该定义为引用类型。
比如c++代码中,WritePrograme(IProgramer& programer) 或 WritePrograme(IProgramer* programer);
接口IProgramer将WriteCode定义为虚函数。这样就可以在执行期绑定方法。
sdudubing 2012-02-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sdudubing 的回复:]
interface IProgramer()
{
WriteCode();
}
然后声明两个类,并实现IProgramer接口:
class clsVBProgramer():IProgramer
{
....
WriteCode()
{
//用VB语言写代码;
}
....
}

class clsDelphiProgramer():IProgramer
{
……
[/Quote]
此例子中
programer=new clsVBProgramer;
proj.WritePrograme(programer);
实参数programer属性clsVBProgramer与形参数属性IProgramer不一致也可以?
sdudubing 2012-02-29
  • 打赏
  • 举报
回复
interface IProgramer()
{
WriteCode();
}
然后声明两个类,并实现IProgramer接口:
class clsVBProgramer():IProgramer
{
....
WriteCode()
{
//用VB语言写代码;
}
....
}

class clsDelphiProgramer():IProgramer
{
....
WriteCode()
{
//用Delphi语言写代码;
}
....
}
对clsProject这个类进行一下修改:
class clsProject()
{
....
WritePrograme(IProgramer programer)
{
programer.WriteCode();//写代码
}
......
}

main()
{
clsProject proj=new clsProject;
IProgramer programer;
//如果需要用VB写代码
programer=new clsVBProgramer;
proj.WritePrograme(programer);
//如果需要用Delphi写代码
programer=new clsDelphiProgramer;
proj.WritePrograme(programer);
}
AmbitiousGuy 2012-02-29
  • 打赏
  • 举报
回复
而在java跟c#中,接口类似于c++中的抽象类中定义的那些函数,通常这些函数只有声明而在抽象类中没有实现,这就是我前面说的,接口其实只是一个标准
shuimuniao 2012-02-29
  • 打赏
  • 举报
回复
下面是我对接口的理解,仅仅是个人的理解。希望对你有帮助。
在用文字描述接口之前,我先给你一段代码:
int sortNumber(int* srcInput, int srcLen, int* dstOutput, int dstLen);
int main()
{
...//无论何种方式获得10个数字,scanf也好,固定的也好。
ret = sortNumber(xxx, 10, xxx, 10);
if (ret == 1)
{
...//成功
}
else
{
...//失败
}

return 0;
}
上面这段代码中,我说main程序依赖sortNumber这个函数。如果任何人实现了这个函数,那么我可以保证main程序可以正常发挥作用。任何人包括我自己,也包括其他人。
如果你多上段文字赞同,那么我说sortNumber是main这个程序的接口。你能接受吗?
如果可以,那么再看下面的例子。
int main()
{
....//some code
func1();
....//some code
func2();
....//some code
funcN();
....

return 0;
}
在这个程序中,如果有人实现了func1, func2, funcN,那么main程序可以正常工作。这些func1, func2,funcN就是main程序的接口。只不过这个程序较为复杂,需要的接口比较多。
如果上面所说你都理解,那么我可以这么定义接口。“在设计软件时,可以定义的发现软件(或单模块)需要的外部函数。但是这些函数无法由本软件设计者实现。无法由本软件设计者实现的原因很复杂,多种多样。或者是因为这些函数用于采集数据,而数据与真实的业务相关。或者是由于软件在要包括windows,mac,linux,os20等多个操作系统上实现,甚至在一个还未出现但有可能出现的平台上实现,那么只能将这些函数交给其他人实现。这些已经准确定义了功能、输入、输出的函数就被称为接口”。
Spy 2012-02-29
  • 打赏
  • 举报
回复
补充:然而我们不需要知道这些接口怎么把那些小功能实现的,
就是直接“拿来用”,更形象的如 2 楼所说
AmbitiousGuy 2012-02-29
  • 打赏
  • 举报
回复
通俗点说,比如,你电脑前端的USB接口,无论什么U盘,不管是那个厂家生产,U盘在内部怎么存储数据的,你的计算机不关心,你的计算机关心的只是,那个U盘是否遵守USB接口的标准(这里说的接口自然是指硬件上的接口).

在程序开发中说的接口,通常是指一个类中暴露出来的供该类的使用者操纵的一些函数
Spy 2012-02-29
  • 打赏
  • 举报
回复
我觉得接口就好比一种(特定的)功能,这个功能是可以干什么的……
比如:开车门,转左,转右,刹车,等等,然后我们知道这个是什么功
能后就可以直接拿来用(这些接口),以便实现你想实现的整体(程序)
功能……
5t4rk 2012-02-29
  • 打赏
  • 举报
回复
你还是用现实世界的东西来想吧

比如说 厂家造好的电器 只提供你个插头

你就可以插上电 使用了

AmbitiousGuy 2012-02-29
  • 打赏
  • 举报
回复
所谓的接口,只是一个标准

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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