社区
C++ 语言
帖子详情
接口的概念???
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
打赏
举报
回复
所谓的接口,只是一个标准
【Java面试题】
接口
是否可继承
接口
? 抽象类是否可实现(implements)
接口
? 抽象类是否可继承实体类(concrete class)?
Java面试题:
接口
是否可继承
接口
? 抽象类是否可实现(implements)
接口
? 抽象类是否可继承实体类(concrete class) ??
概念
:
接口
:
接口
是一种约束形式,其中只包括成员定义,不包含成员实现的内容。 抽象类: ...
面试题系列之
接口
是否可继承
接口
?抽象类是否可实现(implements)
接口
?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法?
先从基本的
概念
说起。 一、
接口
官方解释:Java
接口
是一系列方法的声明,是一些方法特征的集合,一个
接口
只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为...
接口
是什么?为什么要使用它?
1 什么是
接口
接口
是一种用来定义程序的协议,它描述可属于任何...因为“同类事物”这个
概念
是相对的,它因为粒度视图不同而不同。 2 为什么要使用
接口
?而不是直接实现呢?
接口
的使用并非总是从设计的角度来考...
面试题:
接口
是否可继承
接口
? 抽象类是否可实现
接口
? 抽象类是否可继承具体类? 抽象类中是否可以有静态的main方法?
接口
:Conclusion ——————————————————————————————————————————————————————
接口
:Book 由
接口
Book继承了Conclusion 可以知道
接口
是可以继承
接口
的...
Java中有了抽象类为什么还有
接口
这个
概念
?
Java中有了抽象类为什么还有
接口
这个
概念
? 一、抽象类 先来说一下抽象类,首先他是一个要被abstract修饰的类,同理被abstract修饰的方法叫抽象方法。抽象类一定要被继承,然后重写里面的抽象方法的,因为是继承,...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章