比如KeyAdapter类与KeyListener的区别是不是就是一个是抽象类一个是接口?在使用的时候我们怎样去选择?public class Controller extends KeyAdapter implements ShapeListener{
@Override
public void keyPressed(KeyEvent e){
//...
}
}今天刚刚接触适配器的概念。有点模糊,网上说,适配器是为了解决某个接口与想要用的接口不一致的一种解决方案,但是在实际应用中如何体现出来?接口中很多方法都没有直接实现,我们直接在实现接口的类中实现不就可以了?为什么还要弄适配器这个东西?另外.KeyAdapter这个适配器类与KeyLsitener的区别在哪?在哪种情况下使用KeyAdapter?

解决方案 »

  1.   

    有一个最大的好处就是
    适配器你不用去实现每个方法,而只需要override需要的那个接口就不一样,定义了多少你就得实现多少,这个有时候很累赘啊去找个Adapter的源代码看看,他也就是实现了Listener,然后所有接口中的方法都置空
      

  2.   

    public abstract class KeyAdapter implements KeyListener {
        /**
         * Invoked when a key has been typed.
         * This event occurs when a key press is followed by a key release.
         */
        public void keyTyped(KeyEvent e) {}    /**
         * Invoked when a key has been pressed.
         */
        public void keyPressed(KeyEvent e) {}    /**
         * Invoked when a key has been released.
         */
        public void keyReleased(KeyEvent e) {}
    }
      

  3.   

    KeyAdapter 之类 和 Adapter 模式关系。
      

  4.   

    KeyAdapter 之类 和 Adapter 模式没有关系。