zoukankan      html  css  js  c++  java
  • 适配器

    如果一个类要实现一个接口,则必须覆写此接口中的全部抽象方法,那么如果一个接口中定义的抽象方法过多,但是在子类中又用不到那么多抽象方法,肯定很麻烦。此时就需要一个中间的过渡,但是此过渡类又不希望被直接使用,所以将此过渡类定义成抽象类最合适,即一个接口首先被一个抽象类先实现(此抽象类即适配器类),并在此抽象类中实现若干方法(方法体为空),则以后的子类直接继承抽象类,就可以有选择地覆写所需要的方法。

     
    interface Window{
         public void open();
         public void close();
         public void activated();
         public void iconified();
         public void deiconified();
    }
    //定义抽象类实现接口,在此类中覆写方法,但是所有的方法体为空
    abstract class WindowAdapter implements Window{
         public void activated(){}
         public void close(){}
         public void deiconified(){}
         public void iconified(){}
         public void open(){}
    }
    //子类直接继承WindowAdapter类,有选择地实现需要的方法
    class WindowImpl extends WindowAdapter{
         public void open(){
              System.out.println("打开");
         }
         public void close(){
              System.out.println("关闭");
         }
    }
    
    public class AdapterDemo{
         public static void main(String args[]){
              Window win = new WindowImpl();     //实现接口对象
              win.open();
         }
    }
    

      

     
    因为采用了适配器这个中间环节,所以子类就不用必须实现接口中的全部方法,而是有选择地实现所需要的方法。
    在图形界面编程的事件处理中经常用到适配器模式,java提供大量的适配器类来实现大量事件监听接口。
  • 相关阅读:
    20155328 《网络攻防》 实验一:PC平台逆向破解(5)M
    20155328 《信息安全系统设计基础》 课程总结
    构建之法
    20155327 2017-2018-2《Java程序设计》课程总结
    20155327 实验五 网络编程与安全
    20155327 网络对抗 实验
    20155327 Exp9 Web安全基础
    20155327 EXP8 Web基础
    20155327 实验四 Android程序设计
    20155327 李百乾 Exp7 网络欺诈防范
  • 原文地址:https://www.cnblogs.com/mywy/p/5230969.html
Copyright © 2011-2022 走看看