接口 案例 笔记本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 }

 

 

 

效果:

posted @ 2020-10-13 00:09  ZHU_FENG  阅读(130)  评论(0)    收藏  举报