【笔记本USB接口】【接口多态的综合案例】

1 篇文章 0 订阅
1 篇文章 0 订阅

【基础介绍】

笔记本电脑(laptop) 通常具备使用USB设备的功能。定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用。

【案例分析】

描述笔记本类,实现笔记本使用USB鼠标、USB键盘:

●USB接口,包含打开设备功能、关闭设备功能;

●笔记本类,包含开机功能、关机功能、使用USB设备功能;

●鼠标类,要实现USB接口,并具备点击的方法;

●键盘类,要实现USB接口,具备敲击的方法。

●分析图:
在这里插入图片描述
【代码实现】

<USB接口>

package com.java.intreface;

public interface USB {
    public abstract void open();
    public abstract void close();
}

<笔记本电脑>

package com.java.intreface;

//笔记本电脑
public class Computer {
    public void powerOn() {
        System.out.println("电脑开机");
    }
    public void powerOf() {
        System.out.println("电脑关机");
    }

    public void use(USB usb){
        usb.open();
        usb.close();
        if(usb instanceof Mouse){ //向下转型
            Mouse mouse = (Mouse) usb;
            mouse.click();
        }else if(usb instanceof Keyboard){
            Keyboard keyboard = (Keyboard)usb;
            keyboard.input();
        }
    }
}

<鼠标类>

package com.java.intreface;

//鼠标类
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("鼠标点击");
    }
}

<键盘类>

package com.java.intreface;
//键盘类
public class Keyboard implements USB {
    @Override
    public void open() {
        System.out.println("打开键盘");
    }

    @Override
    public void close() {
        System.out.println("关闭键盘");
    }
    public void input(){
        System.out.println("键盘输入");
    }
}

< Main >

package com.java.intreface;

public class DemonMain {
    public static void main(String[] args) {
        //创建一个笔记本电脑
        Computer computer = new Computer();
        computer.powerOn();
        System.out.println("============");

        /*
        方法①:向下转型
        */
        USB usbMouse = new Mouse();
        computer.use(usbMouse);
        System.out.println("============");
        /*
        方法二:可以直接new: 类似于把int转成double => 把keyboard转成USB
        */
        Keyboard useKeyboard = new Keyboard();
        computer.use(useKeyboard); //本来括号里面是USB类型 ①
        //computer.use(new Keyboard());//使用匿名对象也可以 ②

        System.out.println("============");
        computer.powerOf();
    }
}

【运行结果】
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值