所谓回调就是A类中设置一个方法b给对象C,C可以执行A中的方法b。通常这个方法是定义在C对象中的接口中的抽象方法,
A设置的时候直接设置这个接口对象即可。
通常A,b,C的关系是这样的,看下别人的解释,其实是一个道理
接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调
如何定义一个回调
a. 定义接口 : 在类©中定义一个Interface, 并在接口中定义一个抽象方法(b);
b. 接口对象 : 在类©中定义一个该接口的成员变量;
c. 设置对象 : 在类©中定义一个公共的方法(d), 可以设置这个接口的对象, 调用该方法给接口对象成员变量赋值;
d. 调用方法 : 在合适的位置调用接口对象中的方法(a调用b方法);
具体代码如下
类C
package com.example.interfacetest.cn;
/**
* 接口的回调机制
* 测试的模版类 类似于android中的控件的点击事件
*/
public class Mode {
CallbackTest mCallbackTest;//定义接口的成员变量
public interface CallbackTest {//定义回调的接口和方法
public void function1();
public void function2();
}
/**
* 参数是一个接口
* @param mCallbackTest
*/
public void getInterface(CallbackTest mCallbackTest) {//定义公共方法给接口变量赋值
this.mCallbackTest = mCallbackTest;
}
public void setOnclick() {
mCallbackTest.function1();
}
public void setOnclick2() {
mCallbackTest.function2();
}
}
类A
package com.example.interfacetest.cn;
import com.example.interfacetest.cn.Mode.CallbackTest;
public class MyInterfaceTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Mode mode = new Mode();
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/62724097695fecdf0d49819a81a24f06.png)
![img](https://img-blog.csdnimg.cn/img_convert/cf7f8010235603cbead24d210fca033e.png)
![img](https://img-blog.csdnimg.cn/img_convert/ac0f5051adbfc00d4585cc2d851e704e.png)
![img](https://img-blog.csdnimg.cn/img_convert/1aedfd354ad4aa709e74813b0176d51c.png)
![img](https://img-blog.csdnimg.cn/img_convert/2fcd0fda385644016e7dd80d4feccb5e.png)
![img](https://img-blog.csdnimg.cn/img_convert/8503ff9f1d3772bf7ebcacc6fca60317.png)
![img](https://img-blog.csdnimg.cn/13f2cb2e05a14868a3f0fd6ac81d625c.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)**
![img](https://img-blog.csdnimg.cn/img_convert/6edd85557dac364308f7e21fc48cd378.png)
### 最后
希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。
好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,**来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。**
![](https://img-blog.csdnimg.cn/img_convert/3d075aacd8553d019c851b6f21d9325c.webp?x-oss-process=image/format,png)
好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
![](https://img-blog.csdnimg.cn/img_convert/4d04fbbc249973a51dc3f7cfd8709d79.webp?x-oss-process=image/format,png)
>为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
[外链图片转存中...(img-EiK8P2B3-1711934041255)]
>为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
> **本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**