作业1]

------------------------------------

使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),

其中含有click() / dbclick() / keyUp() / keyDown()等方法。

ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。

Button类中添加addListener(ButtonListener l)方法。


[作业2]

------------------------------------

阐述什么是多态。

为什么函数可以覆盖,而属性不能覆盖?


---------------------------------------------------------------------------------------------

  1. interface ButtonListener
            {
                public void click();
                public void dbclick();
                public void keyUp();
                public void keyDown();
            }
            public abstract ButtonAdapter implements ButtonListener
            {
                public abstract void click();
                public void dbclick(){
                }
                public void keyUp(){
                }
                public void keyDown(){
                }


            }
            public class MyListener extends ButtonAdapter{
                public void click(){
                    System.out.println("iclick");
                }
            }
            public class Button
            {
                private MyListener Listener;
                public void addListener(MyListener Listener){
                    this.Listener=Listener
                }
            }

  2. 多态是一个类的多种形态,也就是声明同一个类用不同的子类实现,该类会表现出不同的形式。

    接口的原理同上

    函数可以覆盖,是因为函数仅仅是一种操作,子类当然可以选择与父类不尽相同的方式实现同一件事。而属性是鉴别一个类不同于其他的唯一方式,父类的属性如果可以被修改则父类存在的价值会被抹杀。