理解Java中的回调
2012-05-23 10:57
190 查看
public interface Adjustable{ /***调节温度***/ public void adjust(int temperature); }
public class Base{ /***调节速度***/ private int speed; public void adjust(int speed){ this.speed=speed; } }
在接口Adjustable和Base类中都定义了ajust()方法,这两个方法的参数签名一样,但是有着不同的功能。
如果一个Sub类同时要具有调节温度和速度的功能,那么需要继承Base类和实现Adjustable接口。
public class Sub extends Base implements Adjustable{ private int temperature; public void adjust(int temperature){ this.temperature = temperature; } }
Sub类实现了Adjustable接口中的adjust()方法,并且将Base类中的adjust()方法给覆盖了。所以没有达到目的。可以使用内部类来解决这个问题
public class Sub extends Base{ private int temperature; private void adjustTemperature(int temperature){ this.temperature = temperature; } private class Closure implements Adjustable{ public void adjust(int temperature){ adjustTemperature(temperature); } } public Adjustable getCallBackReference(){ return new Closure(); } }
Sub类采用了如下措施:
1.定义一个private 类型的adjustTemperature()方法,该方法实现了调节温度的功能,为了避免覆盖Base类的adjust()方法,故意用了不同的名字。
2.定义了一个private类型的实例内部类Closure,该类实现了Adjustable接口,在这个类的adjust()方法中,调用Sub外部类的adjustTemperature()方法。
3.定义了getCallBackReference()方法,该方法返回Closure类的实例。
Sub = new Sub(); Adjustable ad = sub.getCallBackReference(); ad.adjust(15);
回调实质上是指一个类尽管实际上实现了某种功能,但是没有直接提供相应的接口,客户类可以通过这个类的内部类的接口来获得这种功能。这个内部类本身并没有提供真正的实现,仅仅调用外部类的实现。可见回调充分发挥了内部类所具有的访问外部类的实现细节的优势。
相关文章推荐
- 一个经典例子让你彻彻底底理解java回调机制
- 通俗易懂理解Java回调机制
- java回调初步理解_(七)
- 一个经典例子让你彻彻底底理解java回调机制
- Java/Android 关于回调的通俗理解
- 一个例子理解Java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- Java以及Android回调机制的一些理解
- 一个经典例子让你彻彻底底理解java回调机制
- 【Java/Android】对回调机制的理解
- Java 回调函数深入理解
- 一个经典例子让你彻彻底底理解java回调机制
- 关于回调的简单理解(java)
- 一个经典例子让你彻彻底底理解java回调机制
- (转)一个经典例子让你彻彻底底理解java回调机制
- 回调函数透彻理解Java
- 理解java回调机制
- 回调函数透彻理解Java