java 26.练习
2021/9/30 1:10:55
本文主要是介绍java 26.练习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 背景
- 需求
- 分析
- 示例代码
背景
前面学习了接口、多态、向上转型、向下转型、instanceof关键字,本节主要是应用这些知识点实现一个小需求。
需求
笔记本电脑(laptop)通常具备使用usb设备的功能,在生产时,笔记本都预留了可以插入usb设备的usb接口,但具体时什么usb设备,笔记本厂商并不关心,只要符合usb规格的设备都可以。
分析
定义usb接口,具备最基本的开启和关闭功能,鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守usb规范,实现usb接口,否则鼠标和键盘生产出来也无法使用。
示例代码
USB.java
package Demo0929; public interface USB { public abstract void open(); //打开设备 public abstract void close(); //关闭设备 }
Computer.java
package Demo0929; public class Computer { public void powerOn() { System.out.println("开机"); } public void powerOff() { System.out.println("关机"); } public void useDevice(USB usb) { usb.open(); if(usb instanceof Mouse){ Mouse mouse = (Mouse) usb; //向下转型,使用usb设备特有的方法 mouse.click(); }else if(usb instanceof KeyBoard){ KeyBoard kb = (KeyBoard) usb; kb.input(); } usb.close(); } }
Mouse.java
package Demo0929; 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("鼠标点击"); } }
KeyBoard.java
package Demo0929; public class KeyBoard implements USB { @Override public void open() { System.out.println("打开键盘"); } @Override public void close() { System.out.println("关闭键盘"); } public void input(){ System.out.println("键盘输入"); } }
mainDemo.java
package Demo0929; import java.security.Key; public class mainDemo { public static void main(String[] args) { Computer computer = new Computer(); computer.powerOn(); //多态写法 USB useMouse = new Mouse(); computer.useDevice(useMouse); //不使用多态 KeyBoard kb = new KeyBoard(); computer.useDevice(kb); computer.powerOff(); } }
输出
开机 打开鼠标 鼠标点击 关闭鼠标 打开键盘 键盘输入 关闭键盘 关机
这篇关于java 26.练习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南