当前位置: 首页 > news >正文

安卓基础(接口interface)

​1. 接口的定义与实现​

​(1) 定义接口​
// 定义一个 "动物行为" 的接口
public interface Animal {void eat();      // 抽象方法(无实现)void sleep();    // 抽象方法(无实现)// Java 8+ 默认方法(有实现)default void breathe() {System.out.println("呼吸空气");}// Java 8+ 静态方法static boolean isAnimal(Object obj) {return obj instanceof Animal;}
}
​(2) 实现接口​
// Dog 类实现 Animal 接口
public class Dog implements Animal {@Overridepublic void eat() {System.out.println("狗吃狗粮");}@Overridepublic void sleep() {System.out.println("狗在窝里睡觉");}
}
​(3) 使用接口​
Animal myDog = new Dog();
myDog.eat();    // 输出: 狗吃狗粮
myDog.breathe(); // 输出: 呼吸空气(调用默认方法)
Animal.isAnimal(myDog); // true(调用静态方法)

123


文件结构​

src/
└── com/└── example/└── workflow/├── ExecutorCallback.java├── MyCallback.java├── WorkflowExecutor.java└── Main.java

1. ExecutorCallback.java​

package com.example.workflow;// 定义回调接口,无需额外导入
public interface ExecutorCallback {void onStart();void onStepDone(String step);void onComplete();void onError(String error);
}

​2. MyCallback.java​

package com.example.workflow;// 需要导入同一包内的接口
import com.example.workflow.ExecutorCallback;public class MyCallback implements ExecutorCallback {@Overridepublic void onStart() {System.out.println("工作流开始执行!");}@Overridepublic void onStepDone(String step) {System.out.println("步骤完成: " + step);}@Overridepublic void onComplete() {System.out.println("✅ 全部执行完毕!");}@Overridepublic void onError(String error) {System.out.println("❌ 错误: " + error);}
}

​3. WorkflowExecutor.java​

package com.example.workflow;// 导入同一包内的接口
import com.example.workflow.ExecutorCallback;public class WorkflowExecutor {private ExecutorCallback callback;public void setCallback(ExecutorCallback callback) {this.callback = callback;}public void execute() {try {callback.onStart();callback.onStepDone("步骤1");Thread.sleep(1000); // 属于 java.lang,无需显式导入callback.onStepDone("步骤2");Thread.sleep(1000);callback.onComplete();} catch (InterruptedException e) {callback.onError("执行超时");}}
}

​4. Main.java​

package com.example.workflow;// 导入同一包内的类
import com.example.workflow.WorkflowExecutor;
import com.example.workflow.MyCallback;public class Main {public static void main(String[] args) {WorkflowExecutor executor = new WorkflowExecutor();executor.setCallback(new MyCallback());executor.execute();}
}

因为callback就是实例化的ExecutorCallback类了

callback.onStart() 等于 ExecutorCallback.onStart()

http://www.dtcms.com/a/161982.html

相关文章:

  • 高压场景首选:CKESC ROCK 120A-H CAN 电调技术解析与实测报告
  • 51c大模型~合集122
  • 第十六节:开放性问题-Vue与React Hooks对比
  • vue3:v-model的原理示例
  • ISO-C99标准 最小限定值
  • 驱动开发硬核特训 │ Regulator 子系统全解
  • IDEA2022.3开启热部署
  • 【React Native】精通 react native
  • 假云阴影模拟
  • 数字孪生三维建模+虚拟仿真,构建可预测的未来工厂
  • QT采用mqtt进行通信(17.1)
  • 小波变换和图像的融合
  • 征程 6 逆向自证 hbm 与 bc 一致性
  • Spring系列五:手动实现Spring底层机制 第一部分
  • 在 Conda 中,包的安装路径在电脑的哪里
  • SwiftUI 10.Toggle介绍和使用
  • 无人设备遥控器之实时数据保护技术篇
  • 60、微服务保姆教程(三)Sentinel---高可用流量管理框架/服务容错组件
  • 新时代下的存储过程开发实践与优化
  • 模板方法模式(Template Method Pattern)
  • 计算机考研精炼 计网
  • Python爬虫技术全解析:从入门到实战的终极指南大纲(深度解读与扩展)
  • 02_使用 AES 算法实现文件加密上传至阿里云、解密下载
  • AGV、AMR机器人控制器x86/RK3588/NV各有什么优劣势?
  • 数量关系6_排列组合、概率
  • 【QT】QT控制硬件
  • vuex与vuex-persistedstate 插件固化数据
  • 将有序数组转换为高度平衡二叉搜索树 | 详解与Java实现
  • [密码学实战]SDF之密钥管理类函数(二)
  • 勘破养生伪常识,开启科学养生新篇