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-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能