一概念介绍
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实例可以直接调用这两个默认方法。
相关推荐
工作流(WorkflowService)WebService接口使用说明文档详细阐述了如何在泛微E8和E9版本的Ecology8、Ecology9系统中进行接口开发。这些接口主要用于企业级的工作流管理,提供了一套完整的Web服务解决方案,使得不同...
JAVA中医舌诊接口使用示例代码,JAVA舌象图特征人工智能识别代码。检测图像中的舌象,并提取出舌体区域,识别舌象特征属性描述,基于舌象特征辨识体质健康状态、按性别和年龄健康指导。先舌诊辨识体质,按年龄、性别...
在实际的`ConsoleApplication1`示例中,可能包含了展示接口使用的一个简单程序。这个程序可能会定义一个接口,如`ICalculator`,包含`Add(int a, int b)`和`Subtract(int a, int b)`等数学运算方法,然后创建一个`...
财付通接口使用文件是针对腾讯旗下支付平台——财付通的一种技术文档,它详尽地阐述了如何在各种业务场景下与财付通系统进行交互,以实现在线支付、退款、查询交易状态等功能。这份文件对于开发者来说是至关重要的,...
1. **文档(DocService)WebService接口使用说明** 这份文档详细介绍了泛微系统中关于文档管理的服务接口,包括文档的创建、读取、更新和删除等操作。开发者可以通过这些接口,实现与其他系统共享文档资源,进行...
8. 权限管理接口:对不同角色的权限进行分配,如管理员、操作员等,确保接口使用的安全性。 在实际开发过程中,需要注意以下几点: - 安全性:所有接口调用必须使用HTTPS协议,确保数据传输的安全。同时,要妥善...
《人力资源(HrmService)WebService接口使用说明》 本文档详细阐述了如何调用及实现e-cology系统的HrmService WebService接口,以便与其他系统进行数据交互。这份文档旨在为具有IT开发能力的用户或需要系统集成的...
泛微OA工作流WebService接口使用说明 泛微OA工作流WebService接口使用说明是泛微OA系统中的一部分,旨在提供一个统一的接口 для业务系统和协同系统之间的数据交互。该接口使用WebService技术,旨在提高业务系统...
机动车检验监管系统接口使用手册V4.90(设备厂家) 本文档是机动车检验监管系统接口使用手册的第四版九十版,旨在提供机动车检验监管系统的使用指南。该手册主要面向设备厂家,旨在帮助他们更好地理解和使用机动车...
第三方通用登录接口使用说明 本文档将详细介绍第三方通用登录插件的使用说明,该插件支持QQ、人人网、微博、豆瓣等多种第三方登录方式,方便开发者快速实现第三方登录功能,减少开发时间和成本。 第三方登录插件...
《机动车检验监管系统接口使用手册V4.90(设备厂家)实用.doc》是一份详尽的指南,旨在帮助设备制造商和相关技术人员理解并正确使用机动车检验监管系统的接口。这份手册包含了系统接口的调用规范、对外接口的详细说明...
支付宝及时到帐接口使用详解,包括支付宝接口集成指南、标准快速付款接口文档等
微信支付接口使用
微信开发接口使用文档
JAVA文档 详细介绍JAVA中的接口使用方法 有助于初学者的使用
USB通信协议详解,USB接口使用。