题目:编写一个USB接口程序,模拟计算机启动过程和关闭过程启动过程中要加载鼠标、键盘、麦克风等USB设备,具体
要求如下:
(1)定义一个接口USB,包含两个抽象方法turnOn()he turnOff(),分别用于表示USB设备的启动和关闭
(2)编写鼠标Mouse、键盘KeyBoard、麦克风Mic类,实现接口中的turnOn()、turnOff()方法,方法中显示“XX设备
启动了”或“XX设备关闭了”即可
(3)编写计算机类Computer,要求有一个表示计算机上USB插槽数量的数组;添加USB设备的方法add(USB
usb),功能为遍历所有插槽,如果有空闲的就添加一个USB设备
模拟开机启动USB设备的powerOn()方法,功能为遍历所有USB接口,如果连接了USB设备,则启动USB设备,
然后显示“计算机开机成功”
模拟关机关闭USB设备的powerOff()方法,功能为遍历所有USB接口,如果连接了USB设备,则关闭USB设备,
然后显示“计算机关机成功”
(4)编写测试类,要求建立计算机对象,建立鼠标、键盘、麦克风对象,并添加到计算机中,启动计算机,关闭计算机

这个题目涉及了对接口的定义以及实现,这是对接口的基础了解与应用,多个类可以实现同一个接口,但是实现的内容不一样,就像下面代码,同样实现USB接口,但是鼠标与键盘类实现出来执行的语句就不一样,这个题目可以让初学者初步了解与应用接口,对接口有一个比较深刻的印象。
代码:

import java.text.DecimalFormat;
import java.util.Scanner;
interface USB{void turnOn();void turnOff();
}
class Mouse implements USB{@Overridepublic void turnOn() {System.out.println("鼠标启动了");}@Overridepublic void turnOff() {System.out.println("鼠标关闭了");}
}
class  Mic implements USB{@Overridepublic void turnOn() {System.out.println("麦克风启动了");}@Overridepublic void turnOff() {System.out.println("麦克风关闭了");}}
class Keyboard implements USB{@Overridepublic void turnOn() {System.out.println("键盘启动了");}@Overridepublic void turnOff() {System.out.println("键盘关闭了");}
}
class  Computer{USB[]  n=new USB[3];void  add(USB usb){for (int i=0;i<3;i++)if (n[i]==null){n[i]=usb;break;}}void powerOn(){for (int i=0;i<3;i++)if (n[i]!=null)n[i].turnOn();System.out.println("计算机开机成功");}void powerOff(){for (int i=0;i<3;i++)if (n[i]!=null)n[i].turnOff();System.out.println("计算机关机成功");}}
public  class ch01 {public static void main(String[] args){Computer  computer=new Computer();USB   mouse=new Mouse();USB   keyboard=new Keyboard();USB   mic=new Mic();computer.add(mouse);computer.add(keyboard);computer.add(mic);computer.powerOn();computer.powerOff();}}

java--继承--上转型--接口的实践作业--USB模拟器相关推荐

  1. java、上转型对象

    1. 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如: A a; a = new B(); OR A a; B b = new B(); a = b; ...

  2. java面向对象 接口和实现类_类实现java面向对象上:接口

    最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--类实现 10.接口: 接口的设计:        1.应用接口处理多继承:        2.应用接口为外部类添加功能:        ...

  3. java 接口向上转型_JAVA-向上转型与向下转型在接口中的应用

    先来看看定义: 向上转型(upcasting):子类引用的对象转换为父类类型称为向上转型. Father f= new Father(); son s=new son(); f=s;     //Fa ...

  4. 「万字图文」史上最姨母级Java继承详解

    原创公众号:「bigsai」 除公众号以外拒绝任意擅自转载 文章收录在bigsai公众号和回车课堂 课程导学 在Java课堂中,所有老师不得不提到面向对象(Object Oriented),而在谈到面 ...

  5. Java开发知识之Java中的集合上List接口以及子类讲解.

    Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...

  6. Java中继承和面向接口的编程

    继承是面向对象中很重要的概念.如果考虑到Java语言特性,继承分为两种:接口继承和实现继承.这只是技术层面的问题,即便C++中不存在接口的概念,但它的虚基类实际上也相当于接口.对于OO的初学者来说,他 ...

  7. 头歌实践-Java继承与多态

    头歌实践作业 第1关:练习-Java继承和多态之final关键字 第2关:学习-Java继承和多态之对象类型的转换 任务描述 相关知识 向上转型 向下转型 编程要求 第3关:练习-Java继承和多态之 ...

  8. java继承接口和泛型,JavaSE习题 继承接口和泛型

    问答题: 1.子类在什么情况下可以继承父类友好成员? 答:在同一个包内 2.子类通过怎样的方法可以隐藏继承的成员变量? 答:声明一个与父类相同变量名的成员变量 3.子类重写继承的方法原则是什么? 答: ...

  9. Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用

    文章目录 泛型的概念 集合中使用泛型 自定义泛型结构 泛型在继承上的体现 通配符的使用 泛型的概念 集合容器类在设计阶段/声明阶段不能确定这个容器实际存的是什么类型的对象,所以在JDK1.5之前只能把 ...

最新文章

  1. python中x y表示_Python中表达式x += y和x = x+y 的区别详解
  2. JSON数据解析及gson.jar包
  3. bzoj1412[ZJOI2009]狼和羊的故事
  4. tp5获取mysql版本_TP5 + MySQL 应用地址选择
  5. NYOJ 116 士兵杀敌(二)
  6. KDDockWidgets源码编译及安装
  7. 大学英语期末考计算机上答卷,英语期末考试质量分析
  8. Java核心类笔记(字符串方法、StringBuilder(Joiner)、包装、JavaBean、枚举、Math、随机数)
  9. 【渝粤教育】电大中专Office办公软件 (5)作业 题库
  10. 苹果 M1 Pro 和 M1 Max 与原始 M1 相比性能如何?
  11. GPO 安装 .net 4.5和WMF4
  12. BZOJ 3192: [JLOI2013]删除物品 奇淫技巧树状数组
  13. unity序列帧动画
  14. opencv (C语言) 系列一:各函数基本应用及图片反色
  15. uniapp实现语音播放功能
  16. walking机器人仿真教程-激光导航-仿真单点导航
  17. Hibernate中Entity对象的重新加载refresh
  18. 【集合论】关系性质 ( 自反性 | 自反性定理 | 反自反性 | 反自反性定理 | 示例 )
  19. 29、RFM客户价值分析(有图有案例)
  20. Windows10家庭版 VMWare15 安装虚拟机启动时出现 蓝屏(而且重启)问题

热门文章

  1. Ansible中的任务执行控制介绍
  2. Linux运维工程师面试题及答案
  3. java html页面转pdf大全
  4. Linux挂载ntfs格式的U盘
  5. JavaScript基础之立即执行函数
  6. 双目视觉下空间坐标计算matlab,双目视觉下空间坐标计算 opencv+ 个人理解
  7. Linux产生随机数
  8. 新手大战Android源码之启动过程
  9. Spring事务(二、源码分析之ThreadLocal)
  10. 深度优先搜索(DFS)和广度优先搜索(BFS)