笔记本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();


    }
}

 

posted @ 2022-03-03 15:33  mickle_deng1  阅读(69)  评论(0)    收藏  举报