对于Java程序来说,如果一个类要实现一个接口,则必须要覆写此接口中的全部抽象方法,那么如果此时一个接口中定义了抽象方法过多,但是在子类中有用不到这么多的抽象方法,则肯定很麻烦,所以此时需要一个中间的过度,但是此过渡类又不希望被直接使用,所以此过渡定义抽象类最适合,即一个借口首先被一个抽象类实现(此抽象类称为适配器),并在此抽象类中实现诺干方法(方法体为空),则以后子类直接继承抽象类,就可以有选择覆写所需要方法
///适配器 //定义window接口 interface window{ public void open(); public void close(); public void activated(); public void iconified(); // public void deiconified();// } //定义抽象类实现接口,覆写父类中所有方法 abstract class windowAdapter implements window{ public void open(){}; //覆写父类中方法,方法体为空 public void close(){}; public void activated(){}; public void iconified(){}; // public void deiconified(){};// } //子类继承父类windowAdapter类,有选择需要的方法 class WindowImlpl extends windowAdapter{ public void open(){ System.out.println("打开窗口"); } public void close(){ System.out.println("关闭窗口"); } public void activated(){ System.out.println("活动窗口"); } } public class Dome1 { public static void main(String[] args){ window win = new WindowImlpl();//实现接口对象 win.open(); //执行open方法 win.close(); win.activated(); } } //打开窗口 //关闭窗口 //活动窗口
适配器模式有2种,第一种是“面向类的适配器模式”,第二种是“面向对象的适配器模式”。
http://blog.csdn.net/elegant_shadow/article/details/5006175