Java中的钩子方法
钩子方法是啥
钩子顾名思义就是用来挂东西的。那么要挂东西必须有个被挂的东西,要不就是铁环、要不就是墙的边沿。所以要能挂住东西必须要有个被勾住的铁环,要一个钩子。那么在java中也是同样的原理,你首先需要一个被挂在的东西,一个挂载的东西。
钩子的实现方法
是对于抽象方法或者接口中定义的方法的一个空实现,在实际中的应用,比如说有一个接口,这个接口里有7个方法,而你只想用其中一个方法,那么这时,你可以写一个抽象类实现这个接口,在这个抽象类里将你要用的那个方法设置为abstract,其它方法进行空实现,然后你再继承这个抽象类,就不需要实现其它不用的方法,这就是钩子方法的作用。
抽象父类
public abstract class AbstractClass {public abstract boolean isOpen();public final void operating() {if(isOpen()) {System.out.println("钩子方法开启");}else {System.out.println("钩子方法关闭");}}
}
实现类
public class AchieveClass extends AbstractClass {//钩子方法能挂在到operating能干预到operating业务逻辑@Overridepublic boolean isOpen() {return true;}public static void main(String[] args) {AchieveClass ac = new AchieveClass();ac.operating();}}
只要重写isOpen就能干预父类方法的业务流程。相当于将isOpen挂载在了父类的operating()中。
Java中的钩子方法相关推荐
- JAVA中复制数组的方法
在JAVA里面,可以用复制语句"A=B"给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么 ...
- Java中的main()方法详解
源文作者:leizhimin 源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...
- 如何在java中调用js方法
[java] view plain copy/* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager ...
- java中构造方法和方法全面解析
java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...
- java中的dispose()方法
java中的dispose()方法 先来看看 JAVA 1.5 的帮助文档的原文 - dispose - public void dispose() ****** 释放由此 Window.其子组件及其 ...
- java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...
为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...
- Java中重写equals()方法时注意点
Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...
- JAVA中list.contains()方法,要重写equals(),hashcode()方法
今天动力节点java培训机构小编为大家介绍"JAVA中list.contains()方法,要重写equals(),hashcode()方法",希望能够帮助正在学习java的零基础学 ...
- Java 中的某些方法为什么要求传入一个 Class 对象
Java 中的某些方法为什么要求传入一个 Class 对象 在 Java 中,某些方法要求传入一个 Class 对象,这能保证该方法能返回一个正确的类型的对象,从而免除返回后的强制类型转换.比如 ...
最新文章
- bug诞生记——信号(signal)处理导致死锁
- 第7章——狄克特斯拉算法
- go run go build go install 命令解释
- Matlab实用程序--图形应用-图形的叠加
- MySQL--3--mysqldump备份策略
- Android之编程中存在性能影响的主要方面
- HTML+CSS+JS实现 ❤️CSS3图片遮罩高亮显示❤️
- java后端传object给js_【JSON】JSON在前端和后端传递
- Nginx Image缩略图模块加强网站运行速度
- 阿里云服务器从购买,备案,安装部署中遇到的一些坑
- 华为麦芒9正式亮相:6400万三摄,2199元起
- 微信小程序-setData()方法
- Java 异常类层次结构
- synchornized实现原理
- 数字图像处理与Python实现-边缘检测-Roberts算子边缘检测
- 搭建vlmcsd KMS服务器
- .rgb格式文件的Python读取、格式转换
- 贴片式元器件焊接方法
- Tensorflow环境搭建
- Django电商项目(八)订单生成、悲观锁、乐观锁
热门文章
- VC动态链接数据库类ADOConn
- python3远程连接_Python3 SSH远程连接服务器的方法示例
- python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现
- eureka多了一个莫名其妙的服务_SpringCloud 服务注册与发现组件 Eureka
- 如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?
- leetcode 279 四平方定理
- Object 及toString() 方法的重写
- 1001. A+B Format (20)---------------PAT开始
- phpweb2.0 开发实战 ----- 配置虚拟主机
- 数据库设计(四)概念数据模型