接口 案例 笔记本USB

Computer(电脑)
1 public class Computer { 2 3 public void powerOn() { 4 System.out.println("笔记本电脑开机"); 5 } 6 7 public void powerOff() { 8 System.out.println("笔记本电脑关机"); 9 } 10 11 //使用USB设备的方法,使用接口作为参数 12 public static void usbDevice(USB usb){ 13 usb.open();//打开设备 14 15 if (usb instanceof Mouse){// 一定先判断 16 Mouse mouse = (Mouse) usb;//向下转型 17 mouse.click(); 18 }else if (usb instanceof keyboard){//先判断 19 keyboard keyboard = (keyboard) usb;//向下转型 20 keyboard.type(); 21 } 22 23 24 usb.close();//关闭设备 25 } 26 27 }
USB 接口端
1 public interface USB { 2 public abstract void open(); 3 public abstract void close(); 4 5 6 }
Mouse 鼠标(实现类)
1 //鼠标就是一个USB设备 2 public class Mouse implements USB { 3 @Override 4 public void open() { 5 System.out.println("打开鼠标"); 6 7 } 8 9 @Override 10 public void close() { 11 System.out.println("关闭鼠标"); 12 13 } 14 15 public void click(){ 16 System.out.println("点击鼠标"); 17 } 18 }
Keyboard 键盘(实现类)
//键盘就是一个USB设备 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("键盘输入"); } }
DemoMain
1 package Demo05; 2 3 import Array.Manager; 4 5 public class DemoMain { 6 public static void main(String[] args) { 7 //创建一个笔记本电脑 8 Computer computer = new Computer(); 9 computer.powerOn(); 10 11 //准备一个鼠标,供电脑使用 12 // Mouse mouse= new Mouse(); 13 //首先进行向上转型 14 USB usbMouse = new Mouse(); 15 //参数是USB类型,我正好传递进去的就是USB鼠标 16 Computer.usbDevice(usbMouse); 17 18 19 20 //创建一个USB键盘 21 keyboard keyboard = new keyboard(); 22 //方法参数是USB类型,传递进去的是实现类对象。 23 computer.usbDevice(keyboard);//正确写法。 24 //使用子类对象,匿名对象,也是可以的。 25 //computer.usbDevice(new keyboard()); 26 27 28 computer.powerOff(); 29 30 31 } 32 }
效果:


浙公网安备 33010602011771号