LRF-(简单易懂)笔记本电脑USB接口案例 接口多态(向下转型)

该博客介绍了如何使用Java实现USB接口,并通过接口控制鼠标和键盘的操作。具体包括USB接口的抽象定义,鼠标和键盘类的实现,以及在电脑类中如何使用USB设备进行点击和输入功能。在测试类中,展示了电脑开机、关机以及使用鼠标和键盘的流程。
摘要由CSDN通过智能技术生成

USB接口案例实现步骤:

分析:

1)USB接口:具有打开和关闭的功能
2)鼠标类:鼠标使用USB接口,拥有打开和关闭功能,并且具有点击功能
3)键盘类:键盘使用USB接口,拥有打开和关闭功能,并且具有输入功能
4)电脑类:拥有开机和关机功能(开机和关机并不需要USB接口),能实现USB接口,可以利用USB接口使用鼠标和键盘
5)测试类:对于电脑的开关机以及鼠标键盘的打开,关闭,点击,输入进行测试

实现:

USB接口:
public interface USB {
public abstract void open();//打开

public abstract void close();//关闭
}
鼠标类:
public class Mouse implements USB{

@Override
public void open() {
    System.out.println("打开鼠标");
}

//鼠标特定方法点击
public void click() {
    System.out.println("鼠标点击");
}

@Override
public void close() {
    System.out.println("关闭鼠标");
}
}
键盘类:
public class Keyboard implements USB {

@Override
public void open() {
    System.out.println("打开键盘");
}

//键盘特定方法输入
public void input() {
    System.out.println("键盘输入");
}

@Override
public void close() {
    System.out.println("关闭键盘");
}
}
电脑类:
public class Computer {
 public void powerOn() {
     System.out.println("笔记本电脑开机");
}

public void powerOff() {
    System.out.println("笔记本电脑关机");
}

public void useDevice(USB usb) {
    usb.open();
    //使用instanceof关键字,判断usb是键盘还是鼠标
    if (usb instanceof Mouse) {
        //向下转型
        Mouse mouse = (Mouse) usb;
        mouse.click();
    } else if (usb instanceof Keyboard) {
        //向下转型
        Keyboard keyboard = (Keyboard) usb;
        keyboard.input();
    }
    usb.close();
}
} 
测试类:
public class Test {
public static void main(String[] args) {
    //创建电脑对象
    Computer computer = new Computer();

    computer.powerOn();
    //创建鼠标对象
    USB usb1 = new Mouse();
    computer.useDevice(usb1);
    USB usb2 = new Keyboard();
    computer.useDevice(usb2);

    computer.powerOff();


}
}  

结果:

笔记本电脑开机
打开鼠标
鼠标点击
关闭鼠标
打开键盘
键盘输入
关闭键盘
笔记本电脑关机

感谢您的阅读,不足之处欢迎指正!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值