笔记本USB接口案例_分析与笔记本USB接口案例实现
接口多态的综合案例
笔记本USB接口案例
笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口,
但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。
定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守
USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用
案例分析
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
USB接口,包含开启功能、关闭功能
笔记本类,包含运行功能、关机功能、使用USB设备功能
鼠标类,要实现USB接口,并具备点击的方法
键盘类,要实现USB接口,具备敲击的方法
定义USB接口:
interface USB { void open();// 开启功能 void close();// 关闭功能 }
定义鼠标类:
class Mouse implements USB { public void open() { System.out.println("鼠标开启,红灯闪一闪"); } public void close() { System.out.println("鼠标关闭,红灯熄灭"); } public void click(){ System.out.println("鼠标单击"); } }
定义键盘类:
class KeyBoard implements USB { public void open() { System.out.println("键盘开启,绿灯闪一闪"); } public void close() { System.out.println("键盘关闭,绿灯熄灭"); } public void type(){ System.out.println("键盘打字"); } }
定义笔记本类:
class Laptop { // 笔记本开启运行功能 public void run() { System.out.println("笔记本运行"); } // 笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备 public void useUSB(USB usb) { // 判断是否有USB设备 if (usb != null) { usb.open(); // 类型转换,调用特有方法 if(usb instanceof Mouse){ Mouse m = ( Mouse)usb; m.click(); }else if (usb instanceof KeyBoard){ KeyBoard kb = (KeyBoard)usb; kb.type(); } usb.close(); } } public void shutDown() { System.out.println("笔记本关闭"); } }
测试类,代码如下:
public class Test { public static void main(String[] args) { // 创建笔记本实体对象 Laptop lt = new Laptop(); // 笔记本开启 lt.run(); // 创建鼠标实体对象 Usb u = new Mouse(); // 笔记本使用鼠标 lt.useUSB(u); // 创建键盘实体对象 KeyBoard kb = new KeyBoard(); // 笔记本使用键盘 lt.useUSB(kb); // 笔记本关闭 lt.shutDown(); } }