定义一个USB接口,该接口有打开设备和关闭设备两个抽象方法,有一个鼠标类和一个键盘类去实现这个接口,
鼠标有特有的点击击功能,键盘有特有的敲击功能,有一个笔记本电脑去连接这两个设备
首先定义一个接口

public interface UsbInterface { public abstract void turn_on();//打开 public abstract void turn_off();//关闭 }
定义一个键盘类去实现接口

public class Keyboard implements UsbInterface { @Override public void turn_on() { System.out.println("打开键盘"); } @Override public void turn_off() { System.out.println("关闭键盘"); } public void strike(){ System.out.println("敲击功能实现"); } }
定义一个鼠标类实现接口

public class Mouse implements UsbInterface { @Override public void turn_on() { System.out.println("打开鼠标"); } @Override public void turn_off() { System.out.println("关闭鼠标"); } public void click(){ System.out.println("点击功能实现"); } }
定义一个电脑类

public class LittleComputer { public void open(){ System.out.println("开机"); } public void close(){ System.out.println("关机"); } public void useusb(UsbInterface usb){//用USB接口做参数 if(usb instanceof Mouse){ Mouse mouse = (Mouse) usb; mouse.turn_on(); mouse.click(); } if(usb instanceof Keyboard){ Keyboard keyboard = (Keyboard) usb; keyboard.turn_on(); keyboard.strike(); } } public void useusboff(UsbInterface usb){ usb.turn_off(); } }
main方法进行测试

public static void main(String[] args){ LittleComputer computer = new LittleComputer(); computer.open(); computer.useusb(new Mouse());//运用匿名对象 computer.useusb(new Keyboard()); computer.useusboff(new Mouse()); computer.useusboff(new Keyboard()); computer.close(); }