首先说点题外话。为什么要写这篇文章,因为在看J.U.C包的FutureTask源码的时候,有一个done()方法,这是个抽象方法,用户实现它之后,FutureTask会在执行完后调用这个方法。这就是回调机制,回调的思想就是:
类A调用类B的b方法
类B的b方法执行完毕主动调用类A的callback()方法
给出思想过于抽象,所以我会举出一个简单的实例(虽然简单,但是能说明问题),并总结Java实现回调的步骤。
实例基于知乎上一个解释什么是回调机制的回答。
描述: 一个顾客入住了一个酒店,酒店提供叫醒服务,顾客由于第二天早晨有很重要的事情,所以使用了叫醒服务。让酒店工作人员在第二天早晨7:00叫醒顾客。
在这个例子中,顾客是A类,酒店是B类,顾客预订叫醒服务相当于A调用了B的b方法,酒店叫醒顾客相当于B调用了A的callback方法(被叫醒)。
分类:
编程语言 时间:
2019-11-22 00:52:13
阅读次数:
87
抽象 如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 定义 抽象方法:在返回值前加上abstract关键字,然后去掉大括号,分号直接结束。 抽象类:抽象方法所在的类,必须是抽象类才行。在class前写上abstract。 如何使用 1、不能直接创建new抽象类对象 2、必 ...
分类:
编程语言 时间:
2019-11-20 23:26:44
阅读次数:
87
概述 以下列出两点重要特性: Lambda 表达式(匿名函数) Stream 多线程并行数据处理(重要) 接口的默认方法只需要使用 default 关键字即可,这个特征又叫做 扩展方法 Lambda 表达式 Functional 接口 函数式接口 是指仅仅只包含一个抽象方法的接口,每一个该类型的 L ...
分类:
其他好文 时间:
2019-11-20 15:26:22
阅读次数:
69
1.创建一个实现了Runnable接口的类 2.实现类去实现Runnable中的抽象方法:run() 3.创建实现类的对象 4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象 通过Thead类的对象调用start方法 比较创建线程的两种方式: 开发中:优先选择实现Runna ...
分类:
编程语言 时间:
2019-11-18 22:20:25
阅读次数:
166
可以修饰类 方法 abstract修饰类:抽象类 此类不能实例化 抽象类中一定有构造器,便于子类实例化时调用 修饰方法: 抽象方法 没有方法体 abstract不能用来修饰私有方法、静态方法、final的方法、final的类 ...
分类:
其他好文 时间:
2019-11-17 18:12:57
阅读次数:
73
1.接口使用interface定义 2.接口和类是并列的两个结构 3.如何定义接口:定义接口中的成员 JDK7以前 只能定义全局常量和抽象方法 全局常量 public static final的 抽象方法 public abstract的 JDK8: 还可以定义静态方法 默认方法 4.接口中不能定义 ...
分类:
其他好文 时间:
2019-11-17 17:41:17
阅读次数:
64
再来聊聊接口和抽象类。01、抽象类和接口的区别来看网络上对接口的一番解释:接口(英文:Interface),在Java编程语言中是一个抽象类型,是抽象方法的集合。一个类通过继承接口的方式,从而来继承接口的抽象方法。兄弟们,你们怎么看,这段解释把我绕得晕乎乎的,好像喝过一斤二锅头。到底是解释抽象类呢还是接口呢?傻傻分不清楚。搞不清楚要用抽象类还是接口,就先来看看两者之间的区别。来,抽象类和接口,你俩
分类:
编程语言 时间:
2019-11-15 09:18:53
阅读次数:
65
5.1类 超类(父类、基类) 子类(派生类) 使用关键字extends来继承 对于子类想访问父类的私有域,则必须要借助公有接口,在父类中的公有方法正是这样的接口 为了防止子类定义了与父类一样的成员函数,则可以使用特定关键字super来解决: super.父类的成员函数 super与引用的概念不同 , ...
分类:
编程语言 时间:
2019-11-12 01:01:03
阅读次数:
102
一、模板方法模式定义 定义一个操作中的算法的框架,二将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 Abstract-Class叫抽象模板,它的方法分为两类: 1.基本方法 基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。 2.模板方法 可 ...
分类:
其他好文 时间:
2019-11-11 21:43:20
阅读次数:
78
https://www.cnblogs.com/java1024/p/8116327.html(1)抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编 ...
分类:
编程语言 时间:
2019-11-11 12:47:09
阅读次数:
70