[精华帖]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语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...
随机推荐
- CDH删除节点(安全)
经过验证,最快最安全的删除CDH节点的方式,简单概括如下: 1.选中该机器,并停止该机器上的所有角色 2.去对应的服务中删除该机器中每一个角色 3.通过命令行,关闭该机器的的agent服务,并将该机器 ...
- qt获取指定目录下符合条件的文件路径
1)设置名称过滤器 QDir * dir = new QDir(路径); QStringList filter; Filter << QStringLiteral(“筛选的文件条件,如.x ...
- 使用Optional,不再头疼NPE
前言 在 Java 语言开发中,可能大多数程序员遇到最多的异常就是 NullPointException 空指针异常了.这个当初语言的开发者"仅仅因为这样实现起来更容易"而允许空引 ...
- 集群、分布式、SOA、微服务、webService等思想的整理
引子:前几天甲方问我,他用wpf弄个界面,能不能通过其他语言给他传输数据,我由此想到了webservice(此时此刻,我也没有用过webServices),作日翻阅了一些资料,对这块技术有了个大概的了 ...
- vue实例中created、mounted以及其他类型说明
生命周期图示(图片来自coderwhy老师): 每个 Vue 实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后 ...
- 简单mysql存储过程
直接上代码: CREATE DEFINER=`root`@`localhost` PROCEDURE `sos`( ) BEGIN -- 创建一个临时表 DROP TABLE IF EXISTS fi ...
- 读懂操作系统(x64)之堆栈帧(过程调用)
前言 上一节内容我们对在32位操作系统下堆栈帧进行了详细的分析,本节我们继续来看看在64位操作系统下对于过程调用在处理机制上是否会有所不同呢? 堆栈帧 我们给出如下示例代码方便对照汇编代码看,和上一节 ...
- 「雕爷学编程」Arduino动手做(8)——湿度传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- POJ1948 Triangular Pastures
POJ1948 Triangular Pastures #include <iostream> #include <cmath> using namespace std; ; ...
- poj2778 AC自动机
以下内容均为转载,,只有代码是自己写的=-= http://blog.csdn.net/morgan_xww/article/details/7834801 转载地址 博主写的很好 ------- ...