博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记本USB接口案例
阅读量:3961 次
发布时间:2019-05-24

本文共 1944 字,大约阅读时间需要 6 分钟。

分析:

在这里插入图片描述

1.创建USB接口

public interface USB {
public abstract void open(); // 打开设备 public abstract void close(); // 关闭设备}

2.创建键盘鼠标类,实现USB接口

// 鼠标就是一个USB设备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("鼠标点击"); }}
// 键盘就是一个USB设备public class Keyboard implements USB {
@Override public void open() {
System.out.println("打开键盘"); } @Override public void close() {
System.out.println("关闭键盘"); } public void type() {
System.out.println("键盘输入"); }}

3.创建笔记本类

public class Computer {
public void powerOn() {
System.out.println("笔记本电脑开机"); } public void powerOff() {
System.out.println("笔记本电脑关机"); } // 使用USB设备的方法,使用接口作为方法的参数 public void useDevice(USB usb) {
usb.open(); // 打开设备 if (usb instanceof Mouse) {
// 一定要先判断 Mouse mouse = (Mouse) usb; // 向下转型 mouse.click(); } else if (usb instanceof Keyboard) {
// 先判断 Keyboard keyboard = (Keyboard) usb; // 向下转型 keyboard.type(); } usb.close(); // 关闭设备 }}

4.使用

public class DemoMain {
public static void main(String[] args) {
// 首先创建一个笔记本电脑 Computer computer = new Computer(); computer.powerOn(); // 准备一个鼠标,供电脑使用// Mouse mouse = new Mouse(); // 首先进行向上转型 USB usbMouse = new Mouse(); // 多态写法 // 参数是USB类型,我正好传递进去的就是USB鼠标 computer.useDevice(usbMouse); // 创建一个USB键盘 Keyboard keyboard = new Keyboard(); // 没有使用多态写法 // 方法参数是USB类型,传递进去的是实现类对象 computer.useDevice(keyboard); // 正确写法!也发生了向上转型 // 使用子类对象,匿名对象,也可以// computer.useDevice(new Keyboard()); // 也是正确写法 computer.powerOff(); }}

转载地址:http://kdezi.baihongyu.com/

你可能感兴趣的文章
docker更换国内镜像
查看>>
CentOS 下 tree命令用法详解
查看>>
docker上传镜像至Registry时https报错解决方法
查看>>
安装 docker-compose (实测可用,妈妈再也不用担心被墙了)
查看>>
docker下删除none的images
查看>>
Linux提权获取敏感信息方法
查看>>
Ubuntu 16.04开机A start job is running for Raise network interface(5min 4s)解决方法
查看>>
Ubuntu 16.04开机隐藏菜单缩短时间
查看>>
Ubuntu 更换国内源
查看>>
Ubuntu16.04下Docker pull connection refused 解决办法
查看>>
postgres基本操作(个人总结版)
查看>>
The AnimationClip 'Walk' used by the Animation component 'Pig' must be marked as Legacy.
查看>>
《Linux内核设计与实现》- Linux的进程
查看>>
inet_ntoa()
查看>>
POSIX消息队列mq_open问题
查看>>
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
查看>>
用户态切换到内核态的3种方式
查看>>
笔试常见的智力题(附答案)
查看>>
内核库函数
查看>>
Linux 系统内核空间与用户空间通信的实现与分析
查看>>