第一题:
interface ButtonListener{
    public void click();
    public void dbclick();
    public void keyup();
    public void keydown();
}

abstract class ButtonAdapter implements ButtonListener{
    public void dbclick(){
        //...空实现
    }
    public void keyup(){
        //...空实现
    }
    public void keydown(){
        //...空实现
    }
}

class MyClick extends ButtonAdapter{
    public void click(){
        System.out.println("我的单击事件!");
    }
    public void dbclick(){
        System.out.println("我的双击事件!");
    }
}

class YourClick extends ButtonAdapter{
    public void click(){
        System.out.println("你的单击事件!");
    }
}

class Button{
    private ButtonListener listener;
    public void addListener(ButtonListener l){
        this.listener = l;
    }
    public void click(){
        listener.click();
    }
    public void dbclick(){
        listener.dbclick();
    }
}

class InterfaceDemo{
    public static void main(String[] args){
        MyClick myclick = new MyClick();
        YourClick yourclick = new YourClick();

        Button button = new Button();
        button.addListener(myclick);
        button.click();
        button.dbclick();
        button.addListener(yourclick);
        button.click();
    }
}

第二题:
多态是:某一类事物的多种形态表示,一个人同时是好父亲、好丈夫、好儿子。
属性就是保存数据,存在各自的对象中,当实例化得到当前对象时,升格的时候父类属性不被子类覆盖,
当子类没有改属性时则可以继承父类的该属性。
方式调用时存在栈中,逐级搜索,先请求父类,再请求子类,子类请求的方法与父类相同的方法时,则
会覆盖父亲请求的方法,意思就是父类请求的方法已经被子类请求的方法重置。
class Person{
    public String name = "person";
    public void cry(){
        System.out.println("person cry...");
    }
}

class Man extends Person{
    public String name = "man";
    public void cry(){
        System.out.println("man cry...");
    }
}

class Women{
    public static void main(String[] args){
        Man man = new Man();
        man.cry();
        System.out.println(man.name);

        Person p = new Man();
        p.cry();
        System.out.println(p.name);
    }
}
打印结果是:
man cry...
man
man cry...
person