系统:Win10
Java:1.8.0_333
IDEA:2020.3.4
1.笔记本电脑
笔记本电脑(laptop)通常具备使用 USB 设备的功能。在生产时,笔记本都预留了可以插入 USB 设备的 USB 接口,但具体是什么 USB 设备,笔记本产商并不关心,只要符合 USB 规格的设备都可以
定义 USB 接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想在电脑上使用,那么鼠标和键盘也必须遵守 USB 规范,实现 USB 接口,否则鼠标和键盘生产出来也无法使用
2.案例分析
进行描述笔记本类,实现笔记本使用 USB 鼠标、USB 键盘
- USB接口,包含开启功能、关闭功能
- 笔记本类,包含开机功能、关机功能、使用USB设备功能
- 鼠标类,要实现USB接口,并具备点击的功能
- 键盘类,要实现USB接口,并具备键入的功能
3.案例实现
定义USB接口
public interface USB {
public abstract void open(); // 开启功能
public abstract void close(); // 关闭功能
}
定义鼠标类
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("鼠标点击");
}
}
定义键盘类
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 Laptop {
// 笔记本具备开机功能
public void powerOn() {
System.out.println("笔记本开机");
}
// 笔记本使用USB设备
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("笔记本关机");
}
}
测试类,代码如下
public class Test {
public static void main(String[] args) {
// 创建笔记本实体对象
Laptop laptop = new Laptop();
// 笔记本开机
laptop.powerOn();
// 创建鼠标实体对象
USB usbMouse = new Mouse();
// 笔记本使用鼠标
laptop.useDevice(usbMouse);
// 创建键盘实体对象
USB usbKeyboard = new Keyboard();
// 笔记本使用键盘
laptop.useDevice(usbKeyboard);
// 笔记本关机
laptop.powerOff();
}
}