一概念介绍
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实例可以直接调用这两个默认方法。
相关推荐
《人力资源(HrmService)WebService接口使用说明》 在企业信息化建设中,Web Service作为一种松散耦合的通信方式,广泛应用于系统间的交互与集成。本文档主要针对泛微公司的E8、E9版本,以及Ecology8和Ecology9...
工作流(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. **系统接口作用**:本文档是为汽车检测线开发提供的接口使用手册。它旨在指导开发者如何调用安车机动车检验监管系统的接口,以实现汽车检验数据...
### 医疗保险医院端接口使用手册知识点解析 #### 一、概述 本文档主要针对医疗保险医院端接口的使用进行了详细的介绍与说明。通过本文档的学习,开发人员能够更好地理解和掌握如何利用这些接口来实现与医疗保险系统...
《企业短信通二次开发接口使用说明书》是一份详细的技术文档,旨在指导理想集团的内部开发人员、市场销售人员,以及集团客户的相关开发人员和市场销售人员如何有效地利用企业短信通的二次开发接口。这份文档包含了从...
财付通接口使用文件是针对腾讯旗下支付平台——财付通的一种技术文档,它详尽地阐述了如何在各种业务场景下与财付通系统进行交互,以实现在线支付、退款、查询交易状态等功能。这份文件对于开发者来说是至关重要的,...
1. **文档(DocService)WebService接口使用说明** 这份文档详细介绍了泛微系统中关于文档管理的服务接口,包括文档的创建、读取、更新和删除等操作。开发者可以通过这些接口,实现与其他系统共享文档资源,进行...
以下是关于关联接口使用的一些详细知识: 1. **接口查询与城市信息**: 在开始使用关联接口之前,首先需要明确你要查询的数据。例如,假设我们需要获取某个城市的天气信息,我们可能需要先查询这个城市的相关ID...
机动车检验监管系统接口使用手册V4.90(设备厂家) 本文档是机动车检验监管系统接口使用手册的第四版九十版,旨在提供机动车检验监管系统的使用指南。该手册主要面向设备厂家,旨在帮助他们更好地理解和使用机动车...
飞狐 外汇 接口 使用说明 飞狐 外汇 接口 使用说明
大漠插件接口使用说明和开发说明书(2012年7月)暂时的最新版
支付宝及时到帐接口使用详解,包括支付宝接口集成指南、标准快速付款接口文档等
微信支付接口使用
微信开发接口使用文档
然而,即使不使用此注解,只要接口满足有且仅有一个抽象方法的条件,它依然可以被当作函数式接口使用。 1.4 自定义函数式接口 自定义函数式接口的常见用途是作为方法的参数,例如: ```java public static void ...
flutter 学习案例,接口使用玩 Android 开放的 api,作为新手入门训练代码案例,耗时大概 4 个月【业余时间】,已经完成了基本的功能。努力打造一个体验好的 flutter 版本的玩 android 客户端!
微软平台的openai接口使用指南
中医舌诊接口使用示例项目源码,包含60个文件,全部采用Java语言编写,涉及多种文件类型如JPG图片、PNG图片、Git忽略文件、Markdown文档、XML配置文件等。该项目提供了中医舌诊接口的使用示例,旨在帮助开发者理解和...