JAVA基础多态案例:USB设备模拟

本文介绍了如何在Test测试类中通过DuoTai包下的Computer类,实现对'拯救者'电脑进行USB设备(键盘和鼠标)的安装与卸载操作,展示了Computer类的接口USB的实现和具体设备KeyPan和Mouse的交互过程。
摘要由CSDN通过智能技术生成

Test测试类

package InterFace_Implements.DuoTai;

public class Test {
    public static void main(String[] args) {
        //创建电脑对象
        Computer c=new Computer();
        c.Run("拯救者");

        //创建键盘对象
        USB k=new KeyPan("诺必行");
        c.installUSB(k);
        c.uninstallUSB(k);

        //创建鼠标对象
        USB m=new Mouse("飞利浦");
        c.installUSB(m);
        c.uninstallUSB(m);
    }
}
Computer类
package InterFace_Implements.DuoTai;
//电脑类
public class Computer implements USB{
    private String name;//电脑品牌

    public static void Run(String name){
        System.out.println(name+"开机成功");
    }
    public  void installUSB(USB usb){//电脑安装usb
    usb.connect();
    //独有功能先判断,再强制转换
        if (usb instanceof KeyPan){//判断usb类型是键盘还是鼠标
            KeyPan k=(KeyPan) usb;
            k.KeyDown();
        }else if (usb instanceof Mouse){
            Mouse m=(Mouse) usb;
            m.move("飞利浦");
        }
    }
    public  void uninstallUSB(USB usb){//电脑卸装usb
        usb.unconnect();
        //独有功能先判断,再强制转换
        if (usb instanceof KeyPan){//判断usb类型是键盘还是鼠标
            KeyPan k=(KeyPan) usb;

        }else if (usb instanceof Mouse){
            Mouse m=(Mouse) usb;
        }
    }

    public Computer(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Computer() {
    }

    @Override
    public void connect() {

    }

    @Override
    public void unconnect() {

    }
}
KeyPan类
package InterFace_Implements.DuoTai;
//键盘类
public class KeyPan implements USB{
    private String name;//键盘名称

    public KeyPan() {
    }

    public KeyPan(String name) {
        this.name = name;
    }
    public  void KeyDown(){
        System.out.println("键盘按下了!!!");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void connect() {
        System.out.println("欢迎键盘的到来!!");

    }

    @Override
    public void unconnect() {
        System.out.println("欢迎键盘下次的到来!!");

    }
}
Mouse类
package InterFace_Implements.DuoTai;
//定义鼠标类
public class Mouse implements USB{
    private String name;//鼠标名称

    public  void move(String name){
        System.out.println(name+"移动了!");
    }

    public Mouse(String name) {//有参数构造器
        this.name = name;
    }

    public Mouse() {//无参数构造器
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void connect() {
        System.out.println("欢迎鼠标的到来!!");
    }

    @Override
    public void unconnect() {
        System.out.println("欢迎鼠标下次的到来!!");
    }
}
USB接口

package InterFace_Implements.DuoTai;
//创建USB接口
public interface USB {
    public abstract void connect();//插入usb
    public abstract void unconnect();//拔出usb
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Traveler飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值