案例如图:
演示代码如下:
USB接口:
public interface USB { //接入 拔出 void connect(); void unconnect(); }
键盘实现类:
public class KeyBoard implements USB { private String name; public KeyBoard(String name){ this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } /** 独有功能 */ public void keyDown(){ System.out.println(name + "敲击了:好好学习,天天向上~"); } @Override public void connect() { System.out.println(name + "成功连接了电脑~"); } @Override public void unconnect() { System.out.println(name + "成功从电脑拔出~"); } }
鼠标实现类:
public class Mouse implements USB { private String name; public Mouse(String name){ this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } /** 独有功能 */ public void dbClick(){ System.out.println(name + "一键三连~"); } @Override public void connect() { System.out.println(name + "成功连接了电脑~"); } @Override public void unconnect() { System.out.println(name + "成功从电脑拔出~"); } }
电脑对象:
public class Computer { private String name; public Computer(String name){ this.name = name; } public void start(){ System.out.println(name + "开机了~~~"); } /** 提供安装USB设备入口 */ public void installUSB(USB usb){ //多态: usb == 可能是鼠标 也可能是键盘 usb.connect(); //独有功能:先判断后强转 if (usb instanceof KeyBoard){ KeyBoard k = (KeyBoard) usb; k.keyDown(); }else if (usb instanceof Mouse){ Mouse m = (Mouse) usb; m.dbClick(); } usb.unconnect(); } public String getName() { return name; } public void setName(String name) { this.name = name; } }
测试类:
public class Test { public static void main(String[] args) { //a.创建电脑对象 Computer c = new Computer("Apple"); c.start(); //b.创建鼠标对象和键盘对象 USB u = new KeyBoard("罗技"); c.installUSB(u); USB u1 = new Mouse("雷蛇"); c.installUSB(u1); } }