笔记本USB接口案例(接口多态案例)

笔记本电脑

笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。

案例分析

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

  • USB接口,包含开启功能、关闭功能
  • 笔记本类,包含运行功能、关机功能、使用USB设备功能
  • 鼠标类,要实现USB接口,并具备点击的方法
  • 键盘类,要实现USB接口,具备敲击的方法

USB.java

package computer;

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

Keyboard.java

package computer;

public class Keyboard implements USB {
    @Override
    public void open() {
        System.out.println("keyboard open");
    }

    @Override
    public void close() {
        System.out.println("keyboard close");
    }

    public void type() {
        System.out.println("type");
    }
}

Mouse.java

package computer;

public class Mouse implements USB {
    @Override
    public void open() {
        System.out.println("mouse open");
    }

    @Override
    public void close() {
        System.out.println("mouse close");
    }

    public void click() {
        System.out.println("click");
    }
}

Laptop.java

package computer;

public class Laptop{
    public void run() {
        System.out.println("PC run");
    }

    //多态方式传入参数
    public void useUSB(USB usb) {
        // 判断是否有USB设备
        if (usb != null) {
            //连接USB设备
            usb.open();
            //判断USB设备类型,类型转换,调用特有的方法
            if (usb instanceof Keyboard) {
                ((Keyboard) usb).type();
                Keyboard k = (Keyboard) usb;
                k.type();

            } else if (usb instanceof Mouse) {
                ((Mouse) usb).click();
                Mouse m = (Mouse) usb;
                m.click();
            }
            //拔出USB设备
            usb.close();
        }
    }

    public void shutDown() {
        System.out.println("PC shutDown");
    }
}

TestPC.java

package computer;

public class TestPC {
    public static void main(String[] args) {
        Laptop laptop = new Laptop();
        //开启笔记本
        laptop.run();
        //接口多态创建鼠标对象
        USB u1 = new Mouse();
        //多态对象作为参数传入
        laptop.useUSB(u1);
        //接口多态创建键盘对象
        USB u2 = new Keyboard();
        //多态对象作为参数传入
        laptop.useUSB(u2);
        //关闭笔记本
        laptop.shutDown();
    }
}

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值