`

(一) 接口

 
阅读更多

接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。
接口中所有方法自动地属于pubilic。因此,在接口中声明方法时,不必提供关键字public。
接口可能包含多个方法。接口中还可以定义常量。
接口中不能含有属性,也不能在接口中实现方法。提供属性和方法实现的任务应该由实现接口的那个类来完成。

为了让类实现一个接口,通常需要下面两个步骤:
1)将类声明为实现给定的接口。
2)对接口中所有方法进行定义

要将类声明为实现某个接口,需要使用关键字implements

声明接口中,没有将方法声明为public,是因为在接口中所有的方法都自动地是public,不过在实现接口时,必须把方法声明为pubic;否则,编辑器将认为这个方法的访问属性是包可见性,即类的默认访问属性,之后编译器就会给出试图提供更弱的访问权限的警告信息。

解释:让一个类使用Arrays.sort()排序方法必须让它compareTo方法,这是理所当然的,因为要向sort方法提供对象的比较方式。但是为什么不能在类中直接提供一个compareTo方法,而必须实现Comparable接口?
主要原因在与Java程序设计语言是一种强类型(strongly typed)语言,在调用方法的时候,编译器将会检查这个方法是否存在。在sort方法中可能存在下面这样的语句
if(a[i].compareTo(a[j])>0){
    //rearrange a[i] and a[j]
}
为此编译器必须确认a[i]一定有compareTo方法。如果a是一个Comparable对象的数组,就可以确保拥有compareTo方法,因为每个实现Comparable接口的类都必须提供这个方法的定义。

1.接口的特性
(1)接口不是类,不能使用new运算符实例化一个接口;
(2)可以声明接口的变量;
(3)接口变量必须引用实现了接口的类对象;
(4)可以使用instanceof检查一个对象是否实现了某个特定的接口
(5)与可以建立两类的继承关系一样,接口也可以被扩展,即通过关键字extends继承另一个接口,但不能通过implements声明为实现某个接口(接口不能实例化)
(6)接口中不包含属性或将静态方法,但却可以包含常量。与接口中的方法都自动地被设置为public一样,接口中的属性将被自动设为public static final。
注:可以因为习惯或提高清晰度的考虑将接口方法标记为public,将常量标记为public static final。但Java语言规范却建议不要书写这些多余的关键字。
(7)有些接口只定义了常量,而没有定义方法。
(8)尽管每个类都只能够拥有一个超类,但却可以实现多个接口。这就为定义类的行为提供了极大的灵活性。使用逗号将实现的各个接口分隔开。

2.接口与抽象类
Java程序设计语言为什么要因为接口概念?
每个类只能扩展与一个类。但每个类可以实现多个接口。Java不支持多继承(C++支持),其主要原因是多继承会让语言本身变得非常复杂,效率也会降低。为了避免这类问题的出现,Java语言利用接口机制来实现多继承的大部分功能。

分享到:
评论

相关推荐

    Trade.dll 交易接口和TradeX.dll行情交易二合一接口

    通过TdxTradeServer调用通达信交易接口DLL, 将请求封装为 http rest api,实现自动交易。

    Trade.dll 交易接口和TradeX.dll行情交易二合一接口大集合

    Trade.dll 交易接口。这段时间抽空把自己原先在论坛上收集的老版Trade.dll和新版TradeX.dll(行情和交易二合一)整合了一下,做成个大集合,希望那些还在到处奔波寻找的兄弟有些价值,不用整天那么麻烦了

    LPT接口打印测试

    在现代计算机中,LPT接口已经非常罕见,但某些特定场景下,如工业控制、老旧设备的兼容性等,可能还需要利用到这一接口。描述中提到的"**LPT接口共享USB命令**"是一种技术手段,通过软件模拟LPT接口,使得不支持LPT...

    大智慧新一代的c语言接口

    这一接口的出现,极大地丰富了用户对于数据分析和交易决策的可能性。 首先,我们来了解一下WIN32动态链接库。DLL是一种可执行文件格式,它可以被多个程序同时调用,从而实现了代码的共享,节省了内存资源。在大智慧...

    研祥工控主板接口定义

    - **特点**:随着软盘逐渐退出市场,这一接口在现代主板上已较少见。 ##### 4. 键盘鼠标接口 - **MINI一转二PS/2接口**:允许同时连接键盘和鼠标,简化了桌面布局。 - **2×4PIN PS/2接口**:传统键盘和鼠标接口,...

    一次开源解析接口,风靡影视界的K哥一次解析接口

    【一次开源解析接口:影视界的热门技术】 在影视行业中,为了获取在线视频资源,开发者们经常需要使用到解析接口。而“K哥一次解析接口”就是这样一个被广泛使用的开源项目,它利用PHP技术实现了对视频链接的一次性...

    FMC 接口标准ANSIVITA_57.1

    **FMC 接口标准ANSI/VITA 57.1详解** FMC(FPGA Mezzanine Card)接口标准是电子设计领域中一个重要的模块化...通过阅读" FMC 接口标准ANSIVITA_57.1.pdf "文档,你可以更深入地理解这一接口标准的具体细节和应用。

    金蝶K3 webservice接口

    【金蝶K3 webservice接口】是金蝶企业应用套件(EAS)与外部业务系统集成的关键技术,主要用于实现跨系统的数据交换,尤其是财务信息的...理解并掌握这一接口的使用,对于优化企业内部流程,提升数据处理能力至关重要。

    电信设备-一种简易通信接口.zip

    通过阅读"一种简易通信接口.pdf"文件,我们可以深入理解这一接口的具体实现细节、工作原理和实际应用案例,从而更好地掌握在电信设备中实现简易通信接口的技术要点。这份资料对于电信设备开发人员、系统集成商以及对...

    HR911105A RJ45接口资料

    《HR911105A RJ45接口详解》 ...通过深入理解其特性和应用,我们可以更好地利用这一接口,构建高效、稳定的网络通信系统。对于需要进一步了解的读者,建议详细研读提供的技术文档,以获取更全面的信息。

    新浪微博登陆接口(ASP版)

    最后,为了使接口能够在不同的ASP项目中方便地使用,开发者通常会将其封装成模块或组件的形式,同时提供详细的使用文档和示例代码,这样其他开发者可以更快地集成和使用这一接口。 诚然,由于ASP的市场份额和社区...

    调用百度网盘接口进行文件下载上传

    在IT行业中,调用API(应用程序编程接口)是常见的任务之一,特别是在云存储服务中,如百度网盘。本文将详细讲解如何利用百度网盘提供的API进行文件的上传与下载,帮助开发者集成到自己的项目中。 首先,我们需要...

    定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。 2,定义一个接口Mobile

    1,定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。 2,定义一个接口Mobile(可移动的),该接口有一个抽象方法move()。 3,定义一个抽象类Weapon,实现Assaultable接口和Mobile接口,但并没有给出...

    ETL工具(kettle)使用系列(五)-kettle调用restApi接口获取数据插入数据库-真实案例脱密处理

    ETL工具(kettle)使用系列(五)-kettle调用restApi接口获取数据插入数据库-真实案例脱密处理-kettle脚本

    接口技术试题

    接口技术试题通常用于评估和教育开发者对这一关键概念的理解。这里我们将深入探讨接口技术的基础知识、重要性以及常见应用。 首先,我们需要理解什么是接口。在编程中,接口可以看作是一种合同,它规定了类或模块...

    智能电视主要接口介绍.docx

    虽然现在的新设备中已较少使用AV接口,但在一些老款或低配置的智能电视中,仍然可以找到这一接口,便于与老式设备如录像机、DVD播放器等进行连接。 3、USB接口 USB(Universal Serial Bus)接口在智能电视中的作用...

    java 接口 java 接口java 接口

    接口定义了一组方法签名,但不提供具体实现,这使得类可以实现多个接口,从而表现出多种行为。以下是对Java接口的详细解释: 一、接口的概念 Java接口是一种完全抽象的类型,它只包含常量定义和抽象方法声明。接口...

    中国联通IMS 接口规范 第一分册: Mw/Mg/Mi/Mj/Mk/Gm 接口

    《中国联通IMS接口规范 第一分册:Mw/Mg/Mi/Mj/Mk/Gm 接口》是中国联通制定的企业标准,旨在详细阐述中国联通IMS网络中涉及的SIP接口的定义、功能、协议以及消息参数等内容。该标准自2007年10月31日起实施,为网络...

    PostMan接口参数化、接口返回值传递

    1、PostMan接口参数化操作步骤; 2、环境变量设置步骤; 3、A接口返回值例如token赋值...第一步:修改需要引用上述token值的接口参数取值,参数值value设置为{{access-token}}({{变量名}}),测试接口,正确返回即可;

    微信扫一扫接口,html调用的第三方接口实现

    通过第三方接口,调用微信的扫一扫,扫码完成后打开扫码的网站。主要用于微信环境使用。可用于公众号、网站等。

Global site tag (gtag.js) - Google Analytics