鉤子顧名思義就是用來掛東西的。那麼要掛東西必須有個被掛的東西,要不就是鐵環、要不就是牆的邊沿。因此要能掛住東西必需要有個被勾住的鐵環,要一個鉤子。那麼在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()中。接口