[精华帖]Java接口怎么定义?如何使用?【实例讲解】
[精华帖?]滑稽之谈|||
题目:
模拟电脑USB功能设备使用
1.定义USB接口,具备最基本的开启功能和关闭功能
2.定义电脑类,具有开机、关机以及使用usb设备功能
3.鼠标类、具有usb功能,并具有额外的点击功能
4.键盘类,具有usb功能,并具有额外的敲击功能
5.电脑在使用usb设备时,如果是鼠标,则除了usb的开启、关闭功能之外,还能触发鼠标的点击功能
6.电脑在使用usb设备时,如果是键盘,则除了usb的开启、关闭功能之外,还能触发键盘的敲击功能
1.定义USB接口,具备最基本的开启功能和关闭功能
package com.cn.computer;
public interface USB {
//puvlic interface 接口名
void open();
void close();
}
2.定义电脑类,具有开机、关机以及使用usb设备功能
package com.cn.computer;
public class Computer {
public void powerOn(){
System.out.println("电脑已开机");
}
public void powerOff(){
System.out.println("电脑已关机");
}
public void useUsbDevice(USB usb){
usb.open();
if(usb instanceof Mouse){
((Mouse) usb).click();
}else if(usb instanceof Keyboard){
((Keyboard) usb).keyDown();
}
}
public void deleteUsbDevice(USB usb){
System.out.println("移除usb设备");
usb.close();
}
}
3.鼠标类、具有usb功能,并具有额外的点击功能
package com.cn.computer;
public class Mouse implements USB{
//implements关键字实现接口
@Override
public void close() {
System.out.println("usb关闭,鼠标失去连接");
}
@Override
public void open() {
System.out.println("usb开启,鼠标已连接");
}
public void click(){
System.out.println("鼠标点击了");
}
}
4.键盘类,具有usb功能,并具有额外的敲击功能
package com.cn.computer;
public class Keyboard implements USB{
@Override
public void close() {
System.out.println("usb关闭,键盘失去连接");
}
@Override
public void open() {
System.out.println("usb开启,键盘已连接");
}
public void keyDown(){
System.out.println("键盘敲击了");
}
}
5.电脑在使用usb设备时,如果是鼠标,则除了usb的开启、关闭功能之外,还能触发鼠标的点击功能
6.电脑在使用usb设备时,如果是键盘,则除了usb的开启、关闭功能之外,还能触发键盘的敲击功能
package com.cn.computer;
public class Main {
public static void main(String[] args) {
Computer computer=new Computer();
computer.powerOn();
USB mouse=new Mouse();
computer.useUsbDevice(mouse);
USB keyboard=new Keyboard();
computer.useUsbDevice(keyboard);
computer.deleteUsbDevice(mouse);
computer.deleteUsbDevice(keyboard);
computer.powerOff();
}
}
运行结果
C:\java\JDK\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\...
电脑已开机
usb开启,鼠标已连接
鼠标点击了
usb开启,键盘已连接
键盘敲击了
移除usb设备
usb关闭,鼠标失去连接
移除usb设备
usb关闭,键盘失去连接
电脑已关机
[精华帖]Java接口怎么定义?如何使用?【实例讲解】的更多相关文章
- 教你在Java接口中定义方法
基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClie ...
- java接口中定义成员变量
//抽象类中可以定义如下成员变量:public abstract class People { public String name; public int age; public abstract ...
- Java 接口中定义抽象方法有什么意义
接口方法声明只能是public abstract的,所以不管你在声明的时候加不加abstract,都是可以的.Java 8开始,接口还引入了默认方法,也就是可以给接口的方法提供默认的实现,默认方法应当 ...
- 百度鹰眼Java接口调用增删改查实例
因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...
- 【插件开发】—— 11 窃听风云(Java事件监听原理-GEF实例讲解)
前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件的使用与布局搭配 6 SWT复杂空间与布局搭配 7 SWT布局详解 ...
- java接口和抽象类
关于接口 1.创建一个接口,需要使用interface关键字. 2.实现一个接口,需要使用implements关键字. 3.接口的成员属性都是静态常量(默认public static final). ...
- Java 接口和抽象类差别
原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想非常大程度上取决于它的总体架构,而这个总体架构事实上 ...
- Java 接口基础详解
目录 Java接口示例 实现一个接口 接口实例 实现多个接口 方法签名重叠 接口变量 接口方法 接口默认方法 接口与继承 继承与默认方法 接口与多态性 在Java中,接口是一个抽象类型,有点类似于类, ...
- 我对面向对象设计的理解——Java接口和Java抽象类
在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...
随机推荐
- Linux系统上LNMP服务器的搭建
一.确保登录用户权限为root 如果没有root权限: su root 切换到root用户,但不切换环境变量: 或者 su - root 完整地切换到root用户环境. 二.开始下载并安装LNMP( ...
- 【Elasticsearch学习】文档搜索全过程
在ES执行分布式搜索时,分布式搜索操作需要分散到所有相关分片,若一个索引有3个主分片,每个主分片有一个副本分片,那么搜索请求会在这6个分片中随机选择3个分片,这3个分片有可能是主分片也可能是副本分片, ...
- 【Scala】代码实现Actor多种需求
文章目录 简单实现Actor并发编程 使用Actor实现发送没有返回值的异步消息 使用Actor实现不间断消息发送 用react方法替代receive方法接收消息 结合case class,通过匹配不 ...
- 【Hadoop离线基础总结】Hadoop High Availability\Hadoop基础环境增强
目录 简单介绍 Hadoop HA 概述 集群搭建规划 集群搭建 第一步:停止服务 第二步:启动所有节点的ZooKeeper 第三步:更改配置文件 第四步:启动服务 简单介绍 Hadoop HA 概述 ...
- spark-2.4.5 安装记录
参考 https://data-flair.training/blogs/install-apache-spark-multi-node-cluster/ 下载 spark 地址为 http://sp ...
- spring data jpa 多对多 ManyToMany
环境搭建 源码地址:gitee:https://gitee.com/ytfs-dtx/JPA 导入依赖 <properties> <spring.version>5.2.5.R ...
- [LA7139 Rotation(2014 shanghai onsite)]二维树状数组
题意:有一个n*m的矩形,一辆车从左上角出发,沿一条路径走,路径是由矩形上每个单元格的边构成的,最后回到左上角,求车子在每个格子转过圈数的平方和. 思路:假设需要记录每个格子转的顺时针的圈数(为负表示 ...
- [hdu4801]搜索
http://acm.hdu.edu.cn/showproblem.php?pid=4801 状态和生成状态的过程处理好了,这个题就是简单的搜索题了== #include <iostream&g ...
- [hdu4576]dp
题意:1-n围成1圈,从1出发,第i次走a[i]步,问走m次后出现在[L,R]的概率L<=R. 思路:明显的DP,把编号变成0~n-1,令dp[i][j]表示走完i步之前停在了j上,则有dp[i ...
- vue 下拉刷新实现
[手动实现下拉刷新]可以用vue-pull-refash 插件代替 //下拉刷新 let scroll = this.$ref.scroll // 获取当前要拖拽的元素 let top = scrol ...