Java的回調,又名Callback或者hook,前提應用的是Java的多態
小例子:
class Animals{
void bark(){
System.out.println("叫聲");
}
}
class Dog extends Animals{
void bark(){
System.out.println("汪汪汪");
}
}
public class Callback {
public void interestingBark(Animals a){
System.out.println("有很多種動物");
System.out.println("它們有不同的叫聲");
//叫聲
a.bark();
System.out.println("很有趣吧!");
}
public static void main(String[] args) {
Callback call=new Callback();
call.interestingBark(new Dog());
}
}
輸出:
有很多種動物
它們有不同的叫聲
汪汪汪
很有趣吧!
優化:
- 可以將父類改成抽象類,強制方法重寫
- 也可以通過實現接口來實現強制方法重寫
總結:
- 多態在方法體內的實現