安卓基础(接口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()