博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java™ 教程(接口)
阅读量:6861 次
发布时间:2019-06-26

本文共 2293 字,大约阅读时间需要 7 分钟。

接口

软件工程中存在许多情况,当不同的程序员团队同意一份“合约”来阐明他们的软件如何交互时很重要,每个组都应该能够在不知道如何编写其他组代码的情况下编写代码,一般来说,接口就是这样的合约。

例如,想象一个未来主义社会,计算机控制的机器人汽车在没有人工操作员的情况下将乘客运送到城市街道,汽车制造商编写操作汽车的软件(当然是Java) - 停止,启动,加速,向左转,等等,另一个工业集团,电子制导仪器制造商,使计算机系统接收GPS(全球定位系统)位置数据和无线传输交通状况,并利用该信息来驾驶汽车。

汽车制造商必须发布一个行业标准的接口,详细说明可以调用什么方法来使汽车移动(任何汽车,来自任何制造商),然后,指导制造商可以编写调用接口中描述的方法的软件来命令汽车,工业集团都不需要知道其他集团的软件是如何实现的,事实上,每个小组都认为其软件具有高度专有性,并保留随时修改它的权利,只要它继续遵守已发布的接口即可。

Java中的接口

在Java编程语言中,接口是类似于类的引用类型,它只能包含常量、方法签名,默认方法、静态方法和嵌套类型,方法体仅适用于默认方法和静态方法,接口无法实例化 — 它们只能由类实现或由其他接口继承,继承将在本课程后面讨论。

定义接口类似于创建新类:

public interface OperateCar {   // constant declarations, if any   // method signatures      // An enum with values RIGHT, LEFT   int turn(Direction direction,            double radius,            double startSpeed,            double endSpeed);   int changeLanes(Direction direction,                   double startSpeed,                   double endSpeed);   int signalTurn(Direction direction,                  boolean signalOn);   int getRadarFront(double distanceToCar,                     double speedOfCar);   int getRadarRear(double distanceToCar,                    double speedOfCar);         ......   // more method signatures}

请注意,方法签名没有大括号,并以分号结束。

要使用接口,请编写实现该接口的类,当可实例化的类实现接口时,它为接口中声明的每个方法提供方法体,例如:

public class OperateBMW760i implements OperateCar {    // the OperateCar method signatures, with implementation --    // for example:    int signalTurn(Direction direction, boolean signalOn) {       // code to turn BMW's LEFT turn indicator lights on       // code to turn BMW's LEFT turn indicator lights off       // code to turn BMW's RIGHT turn indicator lights on       // code to turn BMW's RIGHT turn indicator lights off    }    // other members, as needed -- for example, helper classes not     // visible to clients of the interface}

在上面的机器人汽车示例中,汽车制造商将实现该接口,当然,雪佛兰的实现将与丰田的实现大不相同,但两家制造商都将遵循相同的接口,作为该接口的客户,导航制造商将构建使用汽车位置GPS数据、数字街道地图和交通数据驱动汽车的系统,这样,导航系统将调用接口方法:转弯,改变车道,制动,加速等。

接口作为API

机器人汽车示例显示了用作行业标准应用程序编程接口(API)的接口,API在商业软件产品中也很常见,通常,公司销售的软件包包含另一家公司希望在其自己的软件产品中使用的复杂方法。一个例子是销售给制作最终用户图形程序的公司的数字图像处理方法包,图像处理公司编写其类以实现接口,该接口向其客户公开,然后,图形公司使用接口中定义的签名和返回类型调用图像处理方法。虽然图像处理公司的API是公开的(对其客户),但它的API实现仍然是一个严密保密的秘密 — 实际上,只要它继续实现其客户所依赖的原始接口,它可以在以后修改实现。

接口总结

接口声明可以包含方法签名、默认方法、静态方法和常量定义,具有实现的方法只是默认和静态方法。

实现接口的类必须实现接口中声明的所有方法。

可以在任何可以使用类型的地方使用接口名称。


转载地址:http://yjhyl.baihongyu.com/

你可能感兴趣的文章
Python微型Web框架Bottle源码分析
查看>>
px,em,rem,vh,vw,vmin,vmax的区别
查看>>
Python学习第四天----Linux之用户与用户组权限
查看>>
简单的5*5,五子棋小游戏
查看>>
NETSTAT日常应用归档
查看>>
linux下mysql定时备份数据库
查看>>
学习笔记-安装ELK5
查看>>
Linux : Bridge support not available: brctl not found
查看>>
storm
查看>>
数字化正在使CIO职责发生变化
查看>>
谁来担责!无人驾驶汽车还需要汽车保险吗?
查看>>
sed线上经典案例之-同时替换多个字符串
查看>>
2008 R2 AD通过组策略针对用户进行限制QQ等软件的运行
查看>>
SaltStack实战之数据系统-Grains
查看>>
开发php扩展
查看>>
思科高级路由与交换(CISCO 部分) 第5天
查看>>
error: No curses/termcap library found的解决办法
查看>>
执行存储页面的脚本
查看>>
Exchange 2010 OAB下载问题排错error 0x80200049
查看>>
JavaScript基础教程(三)
查看>>