Java学习之Java接口回调理解
Java接口回调
在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调。接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解。
举例:老板分派给员工做事,员工做完事情后需要给老板回复,老板对其做出反应。
上面是个比较经典的例子,下面用代码实现上述例子:
(1)先定义一个接口
package JieKouHuiDiao;
//定义一个接口
public interface JieKou {
public void show();
}
(2)定义一个Boss类实现接口
package JieKouHuiDiao;
public class Boss implements JieKou{
//定义一个老板实现接口
@Override
public void show() {
System.out.println("知道了");
}
}
(3)定义一个员工Employee类
package JieKouHuiDiao;
public class Employee {
//接口属性,方便后边注册
JieKou jiekou;
//注册一个接口属性,等需要调用的时候传入一个接口类型的参数,即本例中的Boss和Employee,
public Employee zhuce(JieKou jiekou,Employee e){
this.jiekou=jiekou;
return e;
}
public void dosomething(){
System.out.println("拼命做事,做完告诉老板");
//接口回调,如果没有注册调用,接口中的抽象方法也不会影响dosomething
jiekou.show();
}
}
(4)测试类
package JieKouHuiDiao;
public class Test {
public static void main(String[] args) {
Employee e=new Employee();
//需要调用的时候先注册,传入Boss类型对象和员工参数
Employee e1=e.zhuce(new Boss(),e);
e1.dosomething();
}
}
通过上面的例子和代码应该有个比较初步的了解了,接口回调还有使用匿名内部类来实现,但是我觉得没有这种理解清晰,所以你懂得,记住这个,理解它就欧了
Java学习之Java接口回调理解的更多相关文章
- [ Java学习基础 ] Java的抽象类与接口
一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...
- [ Java学习基础 ] Java的继承与多态
看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- [ Java学习基础 ] Java构造函数
构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只 ...
- Java 学习笔记(7)——接口与多态
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...
- java学习——JDK1.8接口和实现类
Java 8 新特性:接口的静态方法和默认方法 https://blog.csdn.net/sun_promise/article/details/51220518 接口的默认方法和静态方法 http ...
- java学习路线图-----java基础学习路线图(J2SE学习路线图)
安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...
- [ Java学习基础 ] Java的对象容器 -- 集合
当你有很多书时,你会考虑买一个书柜,将你的书分门别类摆放进入.使用了书柜不仅仅使房间变得整洁,也便于以后使用书时方便查找.在计算机中管理对象亦是如此,当获得多个对象后,也需要一个容器将它们管理起来,这 ...
随机推荐
- (PAT)L2-006 树的遍历 (二叉树构建)
题目链接:https://www.patest.cn/contests/gplt/L2-006 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格 ...
- javaWeb1之Servlet
Servlet Servlet 环境设置 servlet是扩展web服务器功能的组件规范.浏览器发送请求给web服务器,如果是动态资源的请求,web服务器会将请求转发给servlet容器来处理(由容器 ...
- Element UI——本地引入iconfont不显示
前言 前面因为本地引入Element UI导致了iconfont不显示,所以只好再去Element UI官网去扒下iconfot 步骤 进入官网 组件 | Element UI F12进入控制台,找到 ...
- 【SPOJ】DIVCNTK min_25筛
题目大意 给你 \(n,k\),求 \[ S_k(n)=\sum_{i=1}^n\sigma_0(i^k) \] 对 \(2^{64}\) 取模. 题解 一个min_25筛模板题. 令 \(f(n)= ...
- 【XSY2988】取石子 博弈论
题目描述 有 \(n\) 堆石子,每堆石子的个数是 \(c_i\). Alice 和 Bob 轮流取石子(先后手未定),Alice 每次从一堆中取 \(a\) 个,Bob每次从一堆中取 \(b\) 个 ...
- nginx的location配置root、alias用法和区别
root & alias区别root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上root的处理结果是:root路径 ...
- docker_监控
目录 Docker 自带的监控子命令 sysdig Weave Scope cAdvisor Prometheus Prometheus 的架构 多维数据模型 Docker 自带的监控子命令 ps d ...
- Day038--Python--Gevent , IO多路复用
1. 协程: gevent (遇到IO自动切换) import gevent import time from gevent import monkey; monkey.patch_all() # ...
- 微信小程序无法定位
获取定位的时候报:errMsg:getLocation:fail:require permission desc 错 解决办法: 在app.js加入代码 //app.js新增如下代码 config = ...
- pip install升级包
只需要python -m pip install --user --upgrade pip==9.0.3 只需要加一个--user