当前位置 > it书童 > java > 正文

Java 案例:模拟电脑连接usb设备

java it书童 2020-08-08 19:03:17 0赞 0踩 757阅读 0评论

使用接口模拟电脑连接 usb 设备

USB 接口

public interface USB {
    // 打开设备
    public abstract void open();
    // 关闭设备
    public abstract void close();
}

键盘类

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 Mouse implements USB {
    @Override
    public void open() {
        System.out.println("打开鼠标");
    }

    @Override
    public void close() {
        System.out.println("关闭鼠标");
    }

    public void click() {
        System.out.println("鼠标点击");
    }
}

电脑类

import java.security.Key;

public class Computer {
    public void powerOn() {
        System.out.println("电脑开机");
    }

    public void powerOff() {
        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 class Test {
    public static void main(String[] args) {
        // 创建一台电脑
        Computer computer = new Computer();
        // 开机
        computer.powerOn();
        // 连接鼠标(向上转型)
        USB usbMouse = new Mouse();
        computer.useDevice(usbMouse);
        // 连接键盘,用实现类对象的写法,会自动发生向上转型
        Keyboard keyboard = new Keyboard();
        computer.useDevice(keyboard);
        // 关机
        computer.powerOff();
    }
}
关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/561/java-case-analog-computer-connecting-usb-device