一概念介绍
1接口可以用于声明引用类型的变量,但接口不能用于创建实例。
2当使用接口来声明引用类型变量时,这个引用类型变量必须引用其实现类的对象。
3一个类可以实现一个或多个接口,实现接口用implements关键字。
4一个类实现了一个或多个接口之后,这个类必须完全实现这些接口里所定义的全部抽象方法,否则,该类将保留从父接口那里继承到的抽象方法,该类也必须定义为抽象类。
二实现接口的类应用
1代码示例
Output.java
public interface Output { // 接口里定义的成员变量只能是常量 int MAX_CACHE_LINE = 50; // 接口里定义的普通方法只能是public的抽象方法 void out(); void getData(String msg); // 在接口中定义默认方法,需要使用default修饰 default void print(String... msgs) { for (String msg : msgs) { System.out.println(msg); } } // 在接口中定义默认方法,需要使用default修饰 default void test() { System.out.println("默认的test()方法"); } // 在接口中定义类方法,需要使用static修饰 static String staticTest() { return "接口里的类方法"; } }
Printer.java
// 定义一个Product接口 interface Product { int getProduceTime(); } // 让Printer类实现Output和Product接口 public class Printer implements Output , Product { private String[] printData = new String[MAX_CACHE_LINE]; // 用以记录当前需打印的作业数 private int dataNum = 0; public void out() { // 只要还有作业,继续打印 while(dataNum > 0) { System.out.println("打印机打印:" + printData[0]); // 把作业队列整体前移一位,并将剩下的作业数减1 System.arraycopy(printData , 1 , printData, 0, --dataNum); } } public void getData(String msg) { if (dataNum >= MAX_CACHE_LINE) { System.out.println("输出队列已满,添加失败"); } else { // 把打印数据添加到队列里,已保存数据的数量加1。 printData[dataNum++] = msg; } } public int getProduceTime() { return 45; } public static void main(String[] args) { // 创建一个Printer对象,当成Output使用 Output o = new Printer(); o.getData("Linux"); o.getData("Java"); o.out(); o.getData("软件设计"); o.getData("信息安全"); o.out(); // 调用Output接口中定义的默认方法 o.print("林冲" , "武松" , "宋江"); o.test(); // 创建一个Printer对象,当成Product使用 Product p = new Printer(); System.out.println(p.getProduceTime()); // 所有接口类型的引用变量都可直接赋给Object类型的变量 Object obj = p; } }
2运行结果
F:\java\workspace\java6\src>java Printer
打印机打印:Linux
打印机打印:Java
打印机打印:软件设计
打印机打印:信息安全
林冲
武松
宋江
默认的test()方法
45
3结果分析
Printer类实现了Output接口和Product接口,因此Printer对象既可直接赋给Output变量,也可直接赋给Product变量。仿佛Printer类既是Output类的子类,也是Product类的子类,这就是Java提供的模拟多继承。
Printer实现了Output接口,即可获取Output接口中定义的print()和test()两个默认方法,因此Printer实例可以直接调用这两个默认方法。
相关推荐
六合一综合平台外挂系统接口使用手册.pdf 本文档是六合一综合平台外挂系统接口使用手册,提供了外挂系统请求服务的接口调用规范、XML 文件格式定义、接口说明和接口列表等内容。 接口调用规范 外挂系统请求服务的...
工作流(WorkflowService)WebService接口使用说明文档详细阐述了如何在泛微E8和E9版本的Ecology8、Ecology9系统中进行接口开发。这些接口主要用于企业级的工作流管理,提供了一套完整的Web服务解决方案,使得不同...
RV1126_EVB_usb调试接口使用方法 RV1126_EVB_usb调试接口使用方法是RV1126开发板的一种调试接口,通过Micro USB接口连接到PC机,使用CH340G USB转串口芯片,支持Windows和Linux操作系统。 一、 物理接口 RV1126 ...
### 安车机动车检验监管系统接口使用手册V4.40(设备厂家)知识点: 1. **系统接口作用**:本文档是为汽车检测线开发提供的接口使用手册。它旨在指导开发者如何调用安车机动车检验监管系统的接口,以实现汽车检验数据...
JAVA中医舌诊接口使用示例代码,JAVA舌象图特征人工智能识别代码。检测图像中的舌象,并提取出舌体区域,识别舌象特征属性描述,基于舌象特征辨识体质健康状态、按性别和年龄健康指导。先舌诊辨识体质,按年龄、性别...
例如,使用`nextNodeByReject`接口,可以将流程退回给指定的接收人,并添加转发意见。参数包括提交人ID、接收人ID(多个用逗号分隔)以及备注。 3. **获取待办任务列表**: `getToDoWorkflowRequest`接口用于获取...
在实际的`ConsoleApplication1`示例中,可能包含了展示接口使用的一个简单程序。这个程序可能会定义一个接口,如`ICalculator`,包含`Add(int a, int b)`和`Subtract(int a, int b)`等数学运算方法,然后创建一个`...
财付通接口使用文件是针对腾讯旗下支付平台——财付通的一种技术文档,它详尽地阐述了如何在各种业务场景下与财付通系统进行交互,以实现在线支付、退款、查询交易状态等功能。这份文件对于开发者来说是至关重要的,...
1. **文档(DocService)WebService接口使用说明** 这份文档详细介绍了泛微系统中关于文档管理的服务接口,包括文档的创建、读取、更新和删除等操作。开发者可以通过这些接口,实现与其他系统共享文档资源,进行...
8. 权限管理接口:对不同角色的权限进行分配,如管理员、操作员等,确保接口使用的安全性。 在实际开发过程中,需要注意以下几点: - 安全性:所有接口调用必须使用HTTPS协议,确保数据传输的安全。同时,要妥善...
泛微OA工作流WebService接口使用说明 泛微OA工作流WebService接口使用说明是泛微OA系统中的一部分,旨在提供一个统一的接口 для业务系统和协同系统之间的数据交互。该接口使用WebService技术,旨在提高业务系统...
机动车检验监管系统接口使用手册V4.90(设备厂家) 本文档是机动车检验监管系统接口使用手册的第四版九十版,旨在提供机动车检验监管系统的使用指南。该手册主要面向设备厂家,旨在帮助他们更好地理解和使用机动车...
在接口使用规则方面,商户在调用接口时必须使用https请求,确保请求参数不被暴露。商户应当通过DNS解析访问支付宝接口,避免使用DNS缓存或绑定支付宝IP地址,以防IP地址变更导致商户业务不可用。所有请求参数需要...
本文档是中国万网域名主机邮箱API接口使用说明书,旨在为开发者提供全面的指导,以便他们能够高效地集成和使用这些接口。 首先,中国万网域名主机邮箱API接口的使用说明书详细阐述了API接口的使用方法,包括每个...
《机动车检验监管系统接口使用手册V4.90(设备厂家)实用.doc》是一份详尽的指南,旨在帮助设备制造商和相关技术人员理解并正确使用机动车检验监管系统的接口。这份手册包含了系统接口的调用规范、对外接口的详细说明...
支付宝及时到帐接口使用详解,包括支付宝接口集成指南、标准快速付款接口文档等