前言
接口回调是java中非常有用的一种编程方式。
概念
回调是通过对象携带一些信息,这些信息允许在稍后的某个时刻调用初始的对象。
价值
回调的价值在于它的灵活性-可以在运行的时候动态的绑定具体需要方法。
案例
定义接口Flower
/** * 花的接口 */ public interface Flower { void show();//show方法 展示花的特点 }
牡丹(flower的第一个实现类)
public class Peony implements Flower {
@Override
public void show() {
System.out.println("牡丹--富贵");
}
}
玫瑰(flower第二个实现类)
public class Rose implements Flower {
@Override
public void show() {
System.out.println("玫瑰--爱情");
}
}
含笑(第三个实现类)
public class Spreng implements Flower {
@Override
public void show() {
System.out.println("含笑--端庄");
}
}
展示类
public class Means {
private Flower flower;
public void setFlower(Flower flower){
this.flower = flower;
}
public void flowerMeans(){
flower.show();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Means means = new Means();
Flower rose = new Rose();
Flower Spreng = new Spreng();
Flower peony = new Peony();
means.setFlower(rose);
means.flowerMeans();//回调
means.setFlower(Spreng);
means.flowerMeans();
means.setFlower(peony);
means.flowerMeans();
}
}
结果
解析
means的构造方法需要一个flower的引用作为参数,然后在往后的某个时候,means可以通用引用回调flower。