族谱网 头条 人物百科

接口

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:529
转发:0
评论:0
概观接口被用来统一类的共通行为,当不同的类需要进行信息共享时,是不需要特别去创建类间的关系。举例来说,一个人(Human)及一只鹦鹉(Parrot)都会吹口哨(whistle),然而Human及Parrot不应该为Whistler的子类,最好的作法是令他们为Animal的子类,而他们可以使用Whistler的接口进行沟通。还有一种接口的使用方法,则是当一个对象有实现特定接口时,我们使用它是不需要知道它的类,例如,一个事物因为口哨的噪音影响到其他人,对于其他人而言,就不需要知道噪音来源是来自人还是鹦鹉,因为他们可以确定,一个会吹口哨的事物正在吹口哨。举一个更实际的例子,排序算法可能会期待对象的类型是可以被比較的,于是它只需要知道对象的类型可以被以某种方式进行排序即可,这与对象的类型无关。whistler.whistle()将会调用对象的实现方法whistle,而不需要知道对象是以哪个类来实现...

概观

接口被用来统一类的共通行为,当不同的类需要进行信息共享时,是不需要特别去创建类间的关系。举例来说,一个人(Human)及一只鹦鹉(Parrot)都会吹口哨(whistle),然而Human及Parrot不应该为Whistler的子类,最好的作法是令他们为Animal的子类,而他们可以使用Whistler的接口进行沟通。

还有一种接口的使用方法,则是当一个对象有实现特定接口时,我们使用它是不需要知道它的类,例如,一个事物因为口哨的噪音影响到其他人,对于其他人而言,就不需要知道噪音来源是来自人还是鹦鹉,因为他们可以确定,一个会吹口哨的事物正在吹口哨。举一个更实际的例子,排序算法可能会期待对象的类型是可以被比較的,于是它只需要知道对象的类型可以被以某种方式进行排序即可,这与对象的类型无关。whistler.whistle()将会调用对象的实现方法whistle,而不需要知道对象是以哪个类来实现Whistler。

例如:

interfaceBounceable{voidsetBounce();// 注意分號// 介面的方法(method)是公開(public)、抽象(abstract)、永遠不會是最尾端的型別(final)// 把它們想成只是個模型,所以沒有任何方法有被實現}

使用方法

接口的宣告

下列的语法为接口的宣告方式:

接口的主体包含着抽象方法,但所有方法在接口内(定义上)都是抽象(Abstract)方法,所以abstract的关键字在接口内则不被需要。由于接口代表着一个对外行为的集合,所以任何方法在接口内都是public(公开的)。

所以,一个简单的接口可以这么写

publicinterfacePredator{booleanchasePrey(Preyp);voideatPrey(Preyp);}

接口内的成员皆为静态(static)、final及公开(public),反之,他们可以成为任何类或接口的类型

实现一个接口的语法,可以使用这个公式:

类可以用来实现接口,举例来说

publicclassLionimplementsPredator{publicbooleanchasePrey(Preyp){// programming to chase prey p (specifically for a lion)}publicvoideatPrey(Preyp){// programming to eat prey p (specifically for a lion)}}

如果一个类实现了一个接口,而没有实现接口的所有方法,则它必须被标注为abstract(抽象类)。一个抽象类的子类必须实现它未完成的方法,假如该项子类仍不会实现接口的所有方法,那么该项子类依然需要被标注为abstract。

类可以同时实现多项接口

publicclassFrogimplementsPredator,Prey{...}

接口通常被使用在Java编程语言,用来做回调函数使用 。Java并不允许方法作为参数传递使用,因此,其中一个解决办法则是可以定义一个接口,把这个接口当成方法的参数,以此来使用该项对象的方法签名。

子接口

接口可以被延伸为数个不同的接口,可以使用上述所描述的方法,举例来说:

publicinterfaceVenomousPredatorextendsPredator,Venomous{//介面主體}

以上的程序片段是合法定义的子接口,与类不同的是,接口允许多重继承,而Predator 及 Venomous 可能定义或是继承相同的方法,比如说kill(Prey prey),当一个类实现VenomousPredator的时候,它将同时实现这两种方法。

示例

有些泛用的Java接口可供参考:

Comparable 拥有一个方法compareTo,用以描述两个对象是否相等,或是其中一个对象大于另外一个对象。泛型允许已经实现的类,其对象可以用来互相比较。

Serializable 是一个marker interface 没有任何接口或是字段,仅有一个空的主体,它被用来表示一个类可以被序列化。它的Javadoc描述了他是如何运作,而且不需要被强制编程。

另见

Mixin

Traits


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 接口
硬件接口硬件接口为电脑等的信息机器的硬件之间通信时的物理连接器形状、发送接收信号的方法(协议)等等的规格。主要可分为并行链接的和比特序列链接的。序列链接者相比起并行链接者,多得多使用同一电线作为信号控制线和电源供应线。个人电脑领域,因并行链接向更高传输速度的发展遇到瓶项,而在向各接口的序列链接方式迁移(参看总线)。泛用可热插拔(可以在机器电源开着时插拔)者一般不可热插拔的普及接口,可能已有支持热插拔的实用产品。通常认为曾经泛用的遗产设备(旧世代的接口)。不包括PC卡中可热插拔的那些。非泛用、用途受限者软件接口软件间通信时传递消息(message)的规格。接口(程序设计)-程序编写或设计的方法论中程序组件功能的抽象化物。用户界面用户界面-人类与机器、设备、计算机程序或其他复杂工具交互的中介物的聚合。常用于电脑系统和电子设备文脉。人机界面-机械系统、交通工具或工业设备的用户界面有时会指称为人机...
· PS/2接口
颜色代码原来的PS/2连接是黑色的,或与连接线相同颜色(主要是白色)。后来在PC97标准中引入一个颜色代码:键盘的接口、以及兼容的键盘的接口是紫色的;鼠标端口和插头是绿色的。一些厂商开始使用不同的颜色代码:在短期内罗技使用的颜色为橙色,但很快便切换到紫色。今时今日,这段代码仍然使用在大多数电脑。连接器的引脚都仍然是相同的,但大多数的电脑将无法识别连接到错误的端口的设备。接口时序PS/2接口的通讯时序如下图所示。
· 串行接口
规格串行接口按电气标准及协议来分,包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。RS-232-CRS-422RS-485UniversalSerialBus(通用串行总线)RJ-45接口串口与并口的区别串口形容一下就是一条车道,而并口就是有8个车道同一时刻能传送8位(一个字节)数据。但并不是并口快,由于8位通道之间的互相干扰。传输时速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。所以要比并口快。串口硬盘就是这样被人们重视的。交换机的串口交换机的串口的英文就是trunk;是用来做下一跳路由转换用的。每个VLAN只有通过与TRUNK的路由指向后才能上外网实际使用...
· 应用程序接口
概要应用程序接口为:“‘电脑操作系统(Operatingsystem)’或‘程式函式库’提供给应用程序呼叫使用的程式码”。其主要目的是让应用程序开发人员得以呼叫一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个界面,而不涉及应用程序在实际实现过程中的具体操作。例如,图形库中的一组API定义了绘制指标的方式,可于图形输出设备上显示指标。当应用程序需要指标功能时,可在引用、编译时连结到这组API,而执行时就会呼叫此API的实现(库)来显示指标。应用程序接口是一组数量上千、极其复杂的函数和副程式,可让程序员做很多工作,譬如“读取文件”、“显示选单”、“在视窗中显示网页”等等。操作系统的API可用来分配内存或读取档案。许多系统应用程序借由API接口来实现,像是图形系统、数据库、网络Web服务,甚至是线上游戏。应用程序接口有诸多不同设计。用于快...
· 光纤分布式数据接口
FDDI技术特点FDDI是光纤数据在200公里内局域网内传输的标准。FDDI协议基于令牌环协议。它不但可以支持长距离传输,而且还支持多用户。FDDI用于环型网,以光缆作为传输介质,数据传输速率可达到100Mbit/s。FDDI的技术规格有FDDI-I和FDDI-II。通常FDDI指的就是前者。采用五类双绞线作为传输介质的FDDI,称为CDDI。FDDI使用双环令牌传递网络拓扑结构,两环方向相反(以两机来说,两条为一组。一条接收用,一条发送用。),可以在100公里以上的距离支持500台计算机。因为线路材质不同,因此需依照传输距离选用不同材质的光纤。且时间一久光纤会变质,传输距离便会减短。FDDI通常用作骨干网,用得最多的是用作LAN或校园环境大楼之间的主干网(连接桥接器)。这种环境的特点是站点分布在多个建筑物中。连接具有许多局域网段和大图形传输、语音和视频会议以及其他带宽要求大的应用产生的繁...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信