题目要求

/**

*在生产时,笔记本都预留了可以插入USB设备的USB接口, 但具体是什么USB设备,笔记本厂商*并不关心,
           * 只要符合USB规格的设备都可以。
           * 定义USB接口,具备最基本的开启功能和关闭功能。
           * 鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守 USB规范,实现USB接              口,
           * 否则鼠标和键盘的生产出来也无法使用。(使用面向对象思想编程:接口,多态等)

*/

先创建一个接口,让其实现两个方法分别是打开和关闭

//包名,没有可以不写
package com.qf.demo05;//接口
public interface USB {//打开方法,使其使用此接口的类重写其方法abstract void open();//关闭方法,使其使用此接口的类重写其方法abstract void colse();
}

建立鼠标类使用上面的接口

//包
package com.qf.demo05;
//建立鼠标类起名为Mouse使用接口USB
public class Mouse implements USB{//重写其打开方法@Overridepublic void open() {System.out.println("鼠标已连接");}//建立一个新的方法public void mouseClicek() {System.out.println("鼠标疯狂点击");}//重写其关闭方法@Overridepublic void colse() {System.out.println("鼠标TMD点坏了");}}

实现了鼠标类在建立键盘类

//包
package com.qf.demo05;
//建立键盘类起名为KeyBoard使用USB接口
public class KeyBoard implements USB{//重写其打开方法//@Override此表示方法是重写的@Overridepublic void open() {System.out.println("键盘已连接");}//并且创建新的方法public void type(){System.out.println("键盘疯狂敲击代码");}//重写其关闭方法@Overridepublic void colse() {System.out.println("敲完我就走嘻嘻");}}

写一个电脑类调用鼠标和键盘的方法

//包
package com.qf.demo05;
//电脑类起名LapTop
public class LapTop {//写一个方法代表启动电脑public void run () {System.out.println("超级计算机已启动");}//写一个方法调用鼠标和键盘public void show(USB u) {if(u != null) {u.open();//判断这个u是否属于mouse鼠标if(u instanceof Mouse) {//是的话进行强制转换数据类型Mouse m = (Mouse) u;//调用鼠标点击方法m.mouseClicek();//键盘和鼠标同理}else if (u instanceof KeyBoard){KeyBoard k = (KeyBoard) u;k.type();}//实现上述以后启动关闭方案u.colse();//如果不符合上述条件则直接调用下面的代码}else {System.out.println("无设备连接");}}//关闭计算机方法public void down() {System.out.println("超级计算机已关闭");}}

完成电脑类,鼠标类,键盘类以及USB接口后建立测试类进行创建对象测试

//包
package com.qf.demo05;
//测试类起名为Test
public class Test {//此为主函数main方法public static void main(String[] args) {/*** 笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口, 但具体是什么USB设备,笔记本厂            商并不关心,只要符合USB规格的设备都可以。定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守 USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用。(使用面向对象思想编程:接口,多态等)*///创建对象Mouse m = new Mouse();KeyBoard k = new KeyBoard();LapTop la = new LapTop();//调用鼠标方法la.run();la.show(m);//隔开以便看的更加清晰System.out.println("--------------");//调用键盘方法la.run();la.show(k);la.down();}}

最终效果图如下

如果想实现条件不符代码.在看完之后可自行实现更加有利于理解代码

笔记本电脑(laptop)通常具备使用USB设备的功能.实现接口回调(使用面向对象思想编程:接口,多态等).相关推荐

  1. 浅谈Linux USB设备驱动

    1.USB基础介绍 1-1.USB硬件接口介绍 USB接口在硬件上总共有四根线组成VCC.D+.D-.GND,通过计算D+和D-的差值来确定数据.USB设备在传输速率上可以分为低速(1.5Mbps). ...

  2. Android 连接USB设备(主机模式)

    Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 两种模式(主机.配件) 首先,要了解Android 连接USB设备主要通过两种模式, USB 配件模式. USB ...

  3. WDF开发USB设备驱动教程(1)

    PDF下载地址(1.2版):链接地址 CY001开发板讨论帖:链接地址 注:本文档新版本已出,请在博客中查找,或下载PDF全文文档. 链接地址WDF开发USB设备驱动教程 by 张佩 文档说明 作者写 ...

  4. 如何使用 WinUSB 与 USB 设备 (USBDevice) 通信

    选择 USB 设备的驱动程序模型 https://github.com/libusbx/libusbx/wiki/Windows-Backend WinUSB does not support Win ...

  5. WinUSB - 微软为所有 USB 设备提供的常规驱动程序

    WinUSB - 微软为所有 USB 设备提供的常规驱动程序  [复制链接]     shangdawei 20 主题 0 好友 717 积分 高级会员 莫元 696 发消息 电梯直达 1楼  发表于 ...

  6. 在Java 应用程序中访问USB设备

    Java 平台一直都以其平台无关性自豪.虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂.在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java ...

  7. 使用libusb检测USB设备插拔状态

    libusb是一个提供USB设备访问的跨平台用户模式程序库.该项目最新网址:http://www.libusb.info, 支持主流的操作系统:Linux.Mac OS X. Windows.Open ...

  8. Linux设备驱动:USB设备驱动

    1.Linux设备驱动 设备驱动时操作系统内核和机器硬件之间的接口,为应用程序屏蔽了硬件的细节,由一组函数和一些私有数据组成,结构体内包含设备驱动所需要的所有资源,即驱动器对象所拥有的属性及成员.应用 ...

  9. 开发WDM型USB设备驱动程序(一)

    摘要 本文介绍WDM型USB设备驱动程序的基本概念.结构和特性,并说明了利用Driverworks进行开发的方法. 关键词 WDM:USB设备驱动程序:Driverworks 导言 通用串行总线USB ...

最新文章

  1. 制定OKR的两种方式,你知道吗?
  2. c语言最佳适应算法实验报告,操作系统实验报告---主存分配与回收(最佳适应算法)...
  3. SSH:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  4. linux下java程序实现重启功能
  5. checkbox居中 editor_radio 或 CheckBox 关联 其他元素 整体选择
  6. span的取值与赋值(原生js与jquery) - 对比篇
  7. 问题(二)--算法相关
  8. 成功要素:富兰克林的13条必要美德! 与 狗熊掰棒子
  9. avast注册号|好用的avast注册号|没过期avast注册号
  10. matlab2013基础教程,Matlab2013a教程
  11. oracle instant client 配置,oracle instantclient配置
  12. 白盒测试工具―Winams
  13. 图书信息查询ISBN2.0
  14. sphinx linux,sphinx使用及其简单配置方法
  15. 深度学习图像数据库总结(收藏用)
  16. 算法练习-个人所得税
  17. 英语英文理论驾考宝典 驾照考试题库软件
  18. PWM/转速单闭环/转速电流双闭环电机控制Simulink仿真
  19. irq : nobody cared (try booting with the “irqpoll“ option) 问题说明
  20. Java读取word模板,并动态生成word

热门文章

  1. OpenPR开源代码项目(中科院自动化所)-含很多图像处理、模式识别、机器学习、自然语言处理的算法
  2. 【Linux云计算架构:第三阶段-Linux高级运维架构】第13章——redis
  3. 微信公众平台不应是自媒体唯一的内容输出来源
  4. CPU数据预取对软件性能的影响
  5. TIS-100【汇编语言编程游戏】中文手册
  6. GLU(Gated Linear Unit,门控线性单元)简介
  7. ruoyi自定义工作流(前端二,添加流程管理页面)
  8. 走进元宇宙:是什么、有什么、为什么?
  9. 处理前端开发浏览器字体小于12px方法
  10. 由认识到应用——物联网LoRa技术性能分析