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

安卓基础(接口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.xdnf.cn/news/2747.html

相关文章:

  • 模板--进阶
  • 提高营销活动ROI:大数据驱动的精准决策
  • 使用 Electron 打包 Windows 可执行程序
  • Darvas Box黄金交易算法详解:基于XAU/USD的实战应用
  • 武装Burp Suite工具:APIKit插件_接口安全扫描.
  • 算法备案材料拟公示内容涉及什么?如何撰写?
  • opendds的配置
  • IDEA2022.3开启热部署
  • 第16节:传统分类模型-支持向量机(SVM)在图像分类中的应用
  • sources.list.d目录
  • C++(初阶)(十三)——继承
  • 【学习笔记】机器学习(Machine Learning) | 第四章(3)| 多变量线性回归
  • new的使用
  • [4282]PHP跨境电商源码-多语言商城源码/支持代理+商家入驻+分销+等等众多功能/带详细安装
  • Object.assign 浅拷贝
  • 算法思想之哈希表
  • NVIDIA新模型DAM-3B:描述一切,图像视频局部描述新突破
  • 如何设置端口映射?内网IP映射到外网访问,附无公网ip端口映射工具方法
  • DrissionPage采集京东系列——自动化登录
  • 【数据可视化-41】15年NVDA, AAPL, MSFT, GOOGL AMZ股票数据集可视化分析
  • JS错误处理的新方案 (不使用try-catch)
  • 奥威BI+AI数据分析解决方案
  • 30分钟上架鸿蒙原生应用,即时通信IM UI组件库全面适配HarmonyOS 原
  • 前后端分离: vue3+SpringBoot+ElementPlus+Axios+MyBatisPuls
  • linux离线安装zsh
  • C++ 嵌套类 (详解 一站式讲解)
  • Docker 容器虚拟化技术和自动化部署
  • FDA会议类型总结
  • openGauss新特性 | DataKit支持PostgreSQL到openGauss的迁移能力
  • Matplotlib练习代码