接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

Java接口回调一般用法:实现接口实际上和继承抽象类类似,只不过继承是在类的层面上操作,接口是在方法和常量集合的层面上操作,接口比抽象类更抽象、更简洁。可以把实现接口看成继承特定的一个或多个方法以及一些常量,关于接口的具体规则这里不赘述。
为什么要使用接口和抽象类?因为从很多角度讲,这样做符合面向对象的设计思想,比如开闭原则等。
从实际开发的角度讲,Java不支持多继承,为了弥补这一点,接口的存在就极为重要,和继承不同,一个类可以实现多个接口。
接口的一大作用是实现回调,回调分同步回调和异步回调,区别是异步回调使用了多线程技术,当回调中有耗时操作时,就需要使用异步回调。
以下全部以异步回调为例。以下以java写法为例,android同理。
1、一般用法
新建入口类 Main,并新建接口 InterfaceExample
public class Main implements InterfaceExample{
public static void main(String[] args) {
System.out.println("------接口使用测试--------");
InterfaceTest test = new InterfaceTest();
//调用InterfaceTest的handleThings方法,并传递Main的实例
test.handleThings(new Main());
System.out.println("------异步回调测试--------");
}
@Override //重写接口方法
public void sendMessage(String string) {
System.out.println("接口回调成功,利用 " + string + " 做一些事");
}
}
//接口也可以写在一个独立的.java文件里
interface InterfaceExample {
void sendMessage(String string);
}
下面新建发起回调的类InterfaceTest
public class InterfaceTest {
//注意这里Main实例向上转型,接口变量引用了Main实例
public void handleThings(InterfaceExample example) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("-----做一些事------");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//回调接口方法
example.sendMessage("接口传的参数");
}
}).start();
}
}
最后运行输出:
------接口使用测试-------- ------异步回调测试-------- -----做一些事------ 接口回调成功,利用 接口传的参数 做一些事
其中异步的处理也可以在Main中调用handleThings时进行。
2、结合匿名内部类实现接口回调
第二种方法只需要在第一种的基础上修改Main类就可以
public class Main {
public static void main(String[] args) {
System.out.println("------接口使用测试--------");
InterfaceTest test = new InterfaceTest();
//调用InterfaceTest的handleThings方法,并使用实现了InterfaceExample接口的匿名内部类
//在该匿名内部类中重写接口方法
test.handleThings(new InterfaceExample() {
@Override //重写接口方法
public void sendMessage(String string) {
System.out.println("接口回调成功,利用 " + string + " 做一些事");
}
});
System.out.println("------异步回调测试--------");
}
}
interface InterfaceExample {
void sendMessage(String string);
}
可以看到,采用匿名内部类的方式可以简化代码,使程序结构更清晰。所以这种用法很常见,比如android系统提供的view的点击事件就是采用这种形式进行回调。
输出是一样的:
------接口使用测试-------- ------异步回调测试-------- -----做一些事------ 接口回调成功,利用 接口传的参数 做一些事。
本文关于Java编程接口回调一般用法的介绍就到这里,希望对大家有所帮助。
# java
# 接口回调
# 接口回调用法
# java 接口回调实例详解
# Java按时间梯度实现异步回调接口的方法
# Java中的接口回调实例
# 深入了解Java接口回调机制
# 基于Java接口回调详解
# Java接口回调的本质详解
# java实现异步线程
# 回调接口方式
# Java接口的回调机制的实现
# 回调
# 重写
# 是在
# 多个
# 为例
# 抽象类
# 就可以
# 角度讲
# 这一
# 基础上
# 是指
# 中有
# 只需
# 要在
# 一大
# 这样做
# 层面上
# 可以看到
# 不支持
# 可以实现
相关文章:
建站之星2.7模板:企业网站建设与h5定制设计专题
如何快速建站并高效导出源代码?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
如何破解联通资金短缺导致的基站建设难题?
如何用y主机助手快速搭建网站?
如何通过多用户协作模板快速搭建高效企业网站?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
建站之星安装模板失败:服务器环境不兼容?
建站主机如何选?高性价比方案全解析
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站主机选购指南:核心配置优化与品牌推荐方案
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
如何在阿里云虚拟主机上快速搭建个人网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何挑选优质建站一级代理提升网站排名?
建站之星如何实现五合一智能建站与营销推广?
如何通过远程VPS快速搭建个人网站?
建站之星如何助力网站排名飙升?揭秘高效技巧
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
如何制作算命网站,怎么注册算命网站?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何安全更换建站之星模板并保留数据?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
建站之星代理平台如何选择最佳方案?
建站VPS选购需注意哪些关键参数?
宝塔新建站点为何无法访问?如何排查?
建站之星价格显示格式升级,你的预算足够吗?
个人摄影网站制作流程,摄影爱好者都去什么网站?
学校为何禁止电信移动建设网站?
建站之星图片链接生成指南:自助建站与智能设计教程
制作网站公司那家好,网络公司是做什么的?
如何在建站之星网店版论坛获取技术支持?
建站上市公司网站建设方案与SEO优化服务定制指南
已有域名和空间如何快速搭建网站?
php json中文编码为null的解决办法
高性能网站服务器配置指南:安全稳定与高效建站核心方案
免费视频制作网站,更新又快又好的免费电影网站?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何通过云梦建站系统实现SEO快速优化?
学校建站服务器如何选型才能满足性能需求?
如何用IIS7快速搭建并优化网站站点?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
建站主机无法访问?如何排查域名与服务器问题
建站主机功能解析:服务器选择与快速搭建指南
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
中山网站推广排名,中山信息港登录入口?
网页设计与网站制作内容,怎样注册网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。