Java接口回调
来源:互联网 发布:淘宝dsr是什么意思 编辑:程序博客网 时间:2024/06/03 07:10
java中接口是不可以直接创建实例的,如果把一个接口声明为一个变量,那么执行这个接口中的方法,接口没有实例是行不通的。但是java的“多态”给了我们契机,在调用这个方法的时候JVM会自动去找其子类,也就是调用其子类中实现的该方法,这是接口回调的本质。所以说,只需要给该变量指向其子类的地址就可以在调用的时候知道调用子类的方法。
举个例子,那么我们就可以在Test类中创建接口CallBackInterface的子类实例,在Call类中声明接口的变量,在Test类中传实现类的地址给Call类,在Call类中接口变量执行接口中的方法的时候就会调用Test类中实现类的该实现方法,这就是接口回调的执行步骤。
下面直接上代码:
//创建一个接口public interface CallBackInterface { public void result(String string);}
public class Call { private CallBackInterface callBackInterface; public Call(CallBackInterface callBackInterface){ //这里是关键,把外部的接口实例引用到该类,给变量赋值 this.callBackInterface = callBackInterface; //创建实例的时候执行输出 getConsole(); } public void getConsole(){ callBackInterface.result("Call里面传的参数"); }}
//创建一个实现类public class CallBackInterfaceImpl implements CallBackInterface { @Override public void result(String string) { System.out.println("这是实现类:"+string); }}
public class Test { public static void main(String[] args) { //从接口回调得到数据,传匿名内部类的方式 new Call(new CallBackInterface() { @Override public void result(String string) { System.out.println("接口回调得到的数据:"+string); } }); //从接口回调得到数据,传实现类的方式 new Call(new CallBackInterfaceImpl()); }}
打印输出:
总结:把java多态性体现得淋漓尽致啊有木有!!好灵活!!!
0 0
- Java:接口回调
- java 回调接口
- java接口回调
- Java 接口回调
- java接口回调
- Java接口回调
- java接口回调
- Java接口回调
- java接口回调
- Java接口回调
- Java接口回调
- java 接口回调
- Java 接口回调
- jAVA接口回调
- jAVA接口回调
- java-接口回调
- java-接口回调
- java接口回调
- redis 模糊删除所有的缓存信息
- 【Leetcode 219. Contains Duplicate II】
- iOS代码code上传github 不用终端
- L2TP/IPSec一键安装脚本
- matplotlib绘图工具使用
- Java接口回调
- 绝对值编码器的含义
- ORA-00911: invalid character的解决办法
- MD5、SHA1和android apk签名杂谈
- 服务器端口开放修改点
- C语言中可变参数的用法
- 面试遇到的ajax请求串行和并行问题
- Java 多线程 线程之间的协作 wait()和notifyAll()
- .net缓存写法