钩子顾名思义就是用来挂东西的。那么要挂东西必须有个被挂的东西,要不就是铁环、要不就是墙的边沿。因此要能挂住东西必需要有个被勾住的铁环,要一个钩子。那么在java中也是一样的原理,你首先须要一个被挂在的东西,一个挂载的东西。java
是对于抽象方法或者接口中定义的方法的一个空实现,在实际中的应用,好比说有一个接口,这个接口里有7个方法,而你只想用其中一个方法,那么这时,你能够写一个抽象类实现这个接口,在这个抽象类里将你要用的那个方法设置为abstract,其它方法进行空实现,而后你再继承这个抽象类,就不须要实现其它不用的方法,这就是钩子方法的做用。ide
抽象父类code
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业务逻辑 @Override public boolean isOpen() { return true; } public static void main(String[] args) { AchieveClass ac = new AchieveClass(); ac.operating(); } }
只要重写isOpen就能干预父类方法的业务流程。至关于将isOpen挂载在了父类的operating()中。接口