鈎子方法是啥
鈎子顧名思義就是用來掛東西的。那么要掛東西必須有個被掛的東西,要不就是鐵環、要不就是牆的邊沿。所以要能掛住東西必須要有個被勾住的鐵環,要一個鈎子。那么在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業務邏輯
@Override
public boolean isOpen() {
return true;
}
public static void main(String[] args) {
AchieveClass ac = new AchieveClass();
ac.operating();
}
}
只要重寫isOpen就能干預父類方法的業務流程。相當於將isOpen掛載在了父類的operating()中。