0
点赞
收藏
分享

微信扫一扫

多态接口的综合案例

黄昏孤酒 2022-03-19 阅读 51
java
public class Demo {
    public static void main(String[] args) {
        //1买一部电脑
        Computer c = new Computer();
        //2买一个鼠标
        Mouse mouse = new Mouse("小米鼠标");
        c.installUSB(mouse);
        //买一个键盘
        KeyBoard sfy = new KeyBoard("双飞燕");
        c.installUSB(sfy);
    }
}

interface USB{
    void connect(); //接入
    void unconnect(); //拔出
}

class Computer{
    //提供一个安装USB设备的入口
    public void installUSB(USB usb){
        usb.connect();
        
        //usb可能是鼠标,也可能是键盘
        if (usb instanceof Mouse){
            Mouse m = (Mouse) usb;
            m.dbMouse();
        }
        if (usb instanceof KeyBoard ){
            KeyBoard k = (KeyBoard) usb;
            k.KeyDown();
        }
    
        usb.unconnect();
    }
}
class KeyBoard implements USB{
    private String name;
    
    public KeyBoard(String name){
        this.name = name;
    }
    
    //按键
    public void KeyDown(){
        System.out.println(name+"来了,老弟");
    }
    
    @Override
    public void connect() {
        System.out.println(name+"键盘成功接入设备");
    }
    
    @Override
    public void unconnect() {
        System.out.println(name+"键盘成功拔出设备");
    }
}

//定义2个USB设备,鼠标键盘
class Mouse implements USB{
    private String name;
    
    public Mouse(String name){
        this.name = name;
    }
    
    public void dbMouse(){
        System.out.println("双击6666");
    }
    
    @Override
    public void connect() {
        System.out.println(name+"鼠标成功接入");
    }
    
    @Override
    public void unconnect() {
        System.out.println(name+"鼠标成功拔出");
    }
举报

相关推荐

0 条评论