笔记本USB案例分析
定义USB为接口(打开设备、关闭设备)

定义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("笔记本电脑开机"); } public void powerOff(){ System.out.println("笔记本电脑关机"); } //使用USB设备的方法,把接口作为参数 public void useDevice(Usb usb){ //多态的典型使用场景 usb.open(); //向上转型 if(usb instanceof Mouse){ ((Mouse) usb).click(); //向下转型 }else if(usb instanceof Keyboard){ Keyboard keyboard =(Keyboard)usb; keyboard.type(); } usb.close(); } }
主程序:
public class DemoMain { public static void main(String[] args) { Laptop lp = new Laptop(); lp.powerOn(); lp.useDevice(new Mouse()); lp.powerOff(); } }
浙公网安备 33010602011771号