多态案例:模拟笔记本接口工作

进行描述笔记本类,实现笔记本使用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();
    }
}

结果

笔记本开机啦!
鼠标已插入!
点击鼠标!
鼠标已拔出!
键盘已插入!
敲击键盘!
键盘已拔出!
笔记本关机啦!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章