接口经典题目

White graces:个人主页

🙉专栏推荐:《Java入门知识》🙉

🙉 内容推荐:继承与组合:代码复用的两种策略🙉

🐹今日诗词:人似秋鸿来有信,事如春梦了无痕。🐹


目录

🌸一.题目🌸

🌸二.创建接口和类文件🌸

🍎1.USB接口🍎

🍎2.Mouse类🍎

🍎3.Keyboard类🍎

🌸三.笔记本类🌸

🍎1.不使用接口🍎

🍎2.使用接口🍎

⭐四.为什么这样写USBequipment方法⭐

 🌸三.结语+美图分享🌸


🌸一.题目🌸

📚请实现笔记本电脑使用USB鼠标、USB键盘的例子

📕1. USB接口:包含打开设备、关闭设备功能

📗2. 鼠标类:实现USB接口,并具备点击功能

📘3. 键盘类:实现USB接口,并具备输入功能

📙4. 笔记本类:包含开机功能、关机功能、使用USB设备功能

🌸二.创建接口和类文件🌸

🍀题目有一个接口和三个🍀

​​

 

🍎1.USB接口🍎

🍀题目要求: USB接口包含打开设备、关闭设备功能🍀

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

​​

🍎2.Mouse类🍎

🍀题目要求: 鼠标类实现USB接口,并具备点击功能🍀

📖鼠标类和USB接口是(implements)实现关系,并且鼠标类有自己的Click(点击)功能📖

public class Mouse implements USB {@Overridepublic void open() { //重写System.out.println("打开鼠标");}@Overridepublic void close() { //重写System.out.println("关闭鼠标");}public void Click() { //鼠标点击功能System.out.println("鼠标点击");}
}

🍎3.Keyboard类🍎

🍀题目要求: 键盘类实现USB接口,并具备输入功能🍀

📖键盘类和USB接口是(implements)实现关系,并且有自己的Input(输入)功能📖

public class Keyboard implements USB {@Overridepublic void open() {System.out.println("打开键盘");}@Overridepublic void close() {System.out.println("关闭键盘");}public void Input() {System.out.println("键盘输入");}}

🌸三.笔记本类🌸

🍀题目要求: 笔记本类包含开机功能、关机功能、使用USB设备功能🍀

 📖这里没有要求实现接口,我们正常code就行了,用接口写也可以📖 

🍎1.不使用接口🍎

public class Laptop {public void Poweron() {System.out.println("打开电脑");}public void Poweroff() {System.out.println("关闭电脑");}public void USBequipment(USB usb) { //这串代码为什么这样写待会解释usb.open();if (usb instanceof Mouse) {Mouse mouse = (Mouse) usb;mouse.Click();}if (usb instanceof Keyboard) {Keyboard keyboard = (Keyboard)usb;keyboard.Input();}usb.close();}
}

🍀以键盘功能为例子,运行结果如下🍀

​​

 

🍎2.使用接口🍎

public class Laptop implements USB {@Overridepublic void open() {System.out.println("打开电脑");}@Overridepublic void close() {System.out.println("关闭电脑");}public void USBequipment(USB usb) {usb.open();if (usb instanceof Mouse) {Mouse mouse = (Mouse) usb;mouse.Click();}if (usb instanceof Keyboard) {Keyboard keyboard = (Keyboard)usb;keyboard.Input();}usb.close();}
}

🍀以鼠标功能为例子,运行结果🍀

​​

 

⭐四.为什么这样写USBequipment方法⭐

🍀为什么这样写USBequipment方法🍀

​​ 

 🎄重写函数调用知识链接: Java多态(含有重写函数调用)🎄

🎄instanceof关键字知识链接: Java多态(instanceof关键字)🎄


 🌸三.结语+美图分享🌸

🎄✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄

⭐️点赞收藏加关注,学习知识不迷路⭐️

🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉

👍😏⛳️ 点赞☀️收藏 ⭐️ 关注!😏👍

👍😏⛳️ 点赞☀️收藏 ⭐️ 关注!😏👍

👍😏⛳️ 点赞☀️收藏 ⭐️ 关注!😏👍

🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第7章 CPU前端优化

接下来讨论如何使用CPU监控特性寻找CPU上运行的代码中可被调优的位置。 标准的算法和数据结构在性能敏感型工作负载并不总能表现的很好。例如,在“扁平化”数据结构的冲击下,链表基本上快被放弃了。传统链表中的每个节点都是动态分配的,除了…

软考高级系统架构设计师系列论文六十九:论信息系统的安全风险评估

一、信息系统相关知识点 软考高级信息系统项目管理师系列之四十三:信息系统安全管理软考高级系统架构设计师:系统安全分析与设计

go gin 参数绑定常用验证器

https://pkg.go.dev/github.com/go-playground/validator/v10#readme-baked-in-validations min 最小max 最大len 长度限制gt 大于eq 等于ne 不等于eqfield 与某个字段值一样nefield 与某个字段值不一样 package mainimport ("net/http""github.com/gin-gonic…

UnionTech OS(统信桌面操作系统)安装 g++ 和 cmake

文章目录 前言一、debian 10简介二、安装 g三、安装cmake参考资料 前言 统信桌面操作系统支持x86、龙芯、申威、鲲鹏、飞腾、兆芯等国产CPU平台,基于debian 10.x 的稳定版本,长期维护的统一内核版本(4.19)。 一、debian 10简介 Debian 10 是一款广泛使…

Java版Spring cloud 企业电子招投标系统源码

一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…

Django基础3——视图函数

文章目录 一、基本了解1.1 Django内置函数1.2 http请求流程 二、HttpRequest对象(接受客户端请求)2.1 常用属性2.2 常用方法2.3 服务端接收URL参数2.4 QueryDict对象2.5 案例2.5.1 表单GET提交2.5.2 表单POST提交2.5.3 上传文件 三、HttpResponse对象&am…

Ubuntu系统环境搭建(一)——Ubuntu更新

ubuntu环境搭建专栏🔗点击跳转,从这一篇开始,将开始Ubuntu系统环境搭建的系列文章。 Ubuntu系统环境搭建(一)——Ubuntu更新 文章目录 Ubuntu系统环境搭建(一)——Ubuntu更新查看ubuntu版本和详…

【VRTK4.0运动专题】轴移动AxisMove(真实身体的移动)

文章目录 1、概览2、释义3、属性设置 1、概览 2、释义 “竖直轴”控制的行为“水平轴”控制的行为1Vertical-Slide 滑动Horizontal-Slide 滑动2Vertical-Slide 滑动Horizontal-SmoothRotate 转动3Vertical-Slide 滑动Horizontal-SnapRotate 转动(不连续&#xff09…

PHP8函数的引用和取消-PHP8知识详解

今天分享的是php8函数的引用和取消,不过在PHP官方的参考手册中,已经删除了此类教程。 1、函数的引用 在PHP8中不管是自定义函数还是内置函数,都可以直接简单的通过函数名调佣。函数的引用大致有下面3种: 1.1、如果是PHP的内置函…

W6100-EVB-PICO进行UDP组播数据回环测试(九)

前言 上一章我们用我们的开发板作为UDP客户端连接服务器进行数据回环测试,那么本章我们进行UDP组播数据回环测试。 什么是UDP组播? 组播是主机间一对多的通讯模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。组播源将…

OpenEuler 安装mysql

下载安装包 建议直接使用在openEuler官方编译移植过的mysql-5.7.21系列软件包 参考:操作系统迁移实战之在openEuler上部署MySQL数据库 | 数据库迁移方案 | openEuler社区官网 MySQL 5.7.21 移植指南(openEuler 20.03 LTS SP1) | 数据库移植…

uniapp启动微信小程序开发者工具报错Enable IDE Service (y/N) 

下载安装好微信小程序开发者路径 配置好启动路径后 报错[微信小程序开发者工具] ? Enable IDE Service (y/N) [27D[27C 解决办法 因为微信开发者工具的服务端口号没有打开

HTML之VSCode简单配置与创建

目录 插件下载 然后输入源码&#xff1a; 使用 效果 插件下载 下载这个插件后可以直接运行&#xff1a; 然后创建一个文件&#xff1a; 然后输入源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

【HTML】基础语法讲解

基础语法 1. HTML 结构1.1 认识HTML标签1.2 HTML 文件基本结构1.3 标签层次结构1.4 快速生成代码框架 2. HTML 常见标签2.1 注释标签2.2 标题标签:h1-h62.3 段落标签:p2.4 <br>换行标签2.5 格式化标签2.6 图片标签&#xff1a;img2.7 超链接标签&#xff1a;a2.8 表格标签…

ARTS打卡第二周之链表环的检测、gdb中disassemble的使用、底层学习建议、学习分享

Algorithm 题目&#xff1a;链表中环的检测 自己的分析见博客《检测链表中是否存在环》 Review disassemble command是我读的一篇英语文章&#xff0c;这篇文章主要是介绍gdb反汇编命令的使用和参数。自己为了能够演示这篇文章里边的内容&#xff0c;特意自己使用汇编语言编…

Go 自学:map关联数组

以下代码展示了如何建立一个map。 我们可以使用delete删除map中的元素。 我们还可以使用loop遍历map中的所有元素。 package mainimport ("fmt" )func main() {languages : make(map[string]string)languages["JS"] "Javascript"languages[&qu…

【高精度加法】

高精度加法 #include<iostream> #include<vector>using namespace std;vector<int> add(vector<int>& A,vector<int>& B){if(A.size()<B.size()) return add(B,A);vector<int> C;int t 0;for(int i0;i<A.size();i){tA[i…

浅析Linux 物理内存外碎片化

本文出现的内核代码来自Linux4.19&#xff0c;如果有兴趣&#xff0c;读者可以配合代码阅读本文。 一、Linux物理内存外碎片化概述 什么是Linux物理内存碎片化&#xff1f;Linux物理内存碎片化包括两种&#xff1a; 1.物理内存内碎片&#xff1a;指分配给用户的内存空间中未…

微服务中间件--MQ服务异步通信

MQ服务异步通信 MQ服务异步通信a.消息可靠性1) 生产者消息确认2) 消息持久化3) 消费者消息确认4) 消费者失败重试4.a) 本地重试4.b) 失败策略 b.死信交换机1) 初识死信交换机2) TTL3) 延迟队列a) 安装延迟队列插件b) SpringAMQP使用延迟队列插件 c.惰性队列1) 消息堆积问题2) 惰…

安全知识普及-如何创建一个安全的密码

文章目录 安全密码的特点创建安全密码的方法为何要创建一个安全的密码推荐阅读 安全密码是一种强化的密码&#xff0c;旨在提供更高级别的安全性&#xff0c;以防止未经授权的访问、数据泄露和其他安全威胁。 安全密码的特点 安全密码&#xff0c;有七大特点&#xff0c;特点如…