多態案例:模擬筆記本接口工作

進行描述筆記本類,實現筆記本使用USB鼠標、USB鍵盤

  • USB接口,包含開啓功能、關閉功能。
  • 筆記本類,包含運行功能、關機功能、使用USB設備功能。
  • 鼠標類,要實現USB接口,並具備點擊的方法。
  • 鍵盤類,要實現USB接口,具備敲擊的方法。

案例實現

筆記本類

package cn.luis.laptop;

public class Lapton {

    public void powerOn(){
        System.out.println("筆記本開機啦!");
    }

    public void useDevice(Usb usb){
        usb.open();
        if(usb instanceof Mouse){
            Mouse mouse = (Mouse) usb;
            mouse.click();
        } else if(usb instanceof Keyboard){
            Keyboard keyboard = (Keyboard) usb;
            keyboard.type();
        }
        usb.close();
    }

    public void powerOff(){
        System.out.println("筆記本關機啦!");
    }
}

USB接口

package cn.luis.laptop;

public interface Usb {

    void open();
    void close();
}

鼠標

package cn.luis.laptop;

public class Mouse implements Usb {
    @Override
    public void open() {
        System.out.println("鼠標已插入!");
    }

    @Override
    public void close() {
        System.out.println("鼠標已拔出!");
    }

    public void click(){
        System.out.println("點擊鼠標!");
    }
}

鍵盤

package cn.luis.laptop;

public class Keyboard implements Usb {
    @Override
    public void open() {
        System.out.println("鍵盤已插入!");
    }

    @Override
    public void close() {
        System.out.println("鍵盤已拔出!");
    }

    public void type(){
        System.out.println("敲擊鍵盤!");
    }
}

測試類

public class Work{
     public static void main(String[] args) {
        Lapton lapton = new Lapton();
        lapton.powerOn();
        lapton.useDevice(new Mouse());
        lapton.useDevice(new Keyboard());
        lapton.powerOff();
    }
}

結果

筆記本開機啦!
鼠標已插入!
點擊鼠標!
鼠標已拔出!
鍵盤已插入!
敲擊鍵盤!
鍵盤已拔出!
筆記本關機啦!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章