java基礎第六天_接口與適配器模式、多態、內部類

[作業1]

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

使用抽象類和接口實現適配器模式設計。涉及的類和接口分別爲ButtonListener(接口),

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

ButtonAdapter(按鈕適配器類),適配器中對非click()方法進行默認實現。

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

答:

//按鈕監聽器接口

interface ButtonListener {

    public void onClick(); // 單擊事件

    public void onDbclick(); // 雙擊事件

    public void onKeyDown(); // 按鍵按下

    public void onKeyUp(); // 按鍵釋放

}

// 按鈕監聽器適配器

abstract class ButtonAdapterimplements ButtonListener {

    public void onDbclick() {

    } 

    public void onKeyUp() {

    } 

    public void onKeyDown() {

    }

} 

class MyListener extends ButtonAdapter {

    public void onClick() {

        System.out.println("i click one !");

    }

}

 

class YourListener extends ButtonAdapter {

    public void onClick() {

        System.out.println("you click one !");

    }

}

 

// 按鈕

class Button {

// 按鈕的監聽器

    private ButtonListener listener;

// 添加監聽器

    public void addListener(ButtonListener lsn) {

        this.listener = lsn;

    }

// 模擬單擊事件

    public void click() {

    // 處理單擊事件

        listener.onClick();

    }

}

 

class AdapterDemo {

    public static void main(String[] args) {

    // button1

    Button btn1 = new Button();

    MyListener l = new MyListener();

    btn1.addListener(l);

    btn1.click();

    // button2

    Button btn2 = new Button();

    YourListener yl = new YourListener();

    btn2.addListener(yl);

    btn2.click();

    }

}

 

 

[作業2]

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

闡述什麼是多態。

爲什麼函數可以覆蓋,而屬性不能覆蓋?

答:

定義:某一類事物的多種存在形態。

  對繼承的類來講,使用父類類型引用子類的對象。

  對於接口來說,可以使用接口引用實現了該接口的類所創建的對象。

  屬性是資產,容納數據的地方,函數是行爲,不容納和存儲數據,所以函數可以被覆蓋,而屬性不能。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章