java学习笔记——接口多态的综合案例
2023-09-14 09:15:01 时间
3.1 笔记本电脑
笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。
定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,实现USB接口,否则鼠标和键盘生产出来也无法使用。
3.2 案例分析
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
1、USB接口,包含开启功能、关闭功能
2、笔记本类,包含运行功能、关机功能、使用USB设备功能
3、鼠标类,要实现USB接口,并具备点击的方法
4、键盘类,要实现USB接口,具备敲击的方法
3.3 案例实现
定义USB接口:
package demo3;
public interface USB {
void open();//开启功能
void close();//关闭功能
}
定义鼠标类:
package demo3;
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("鼠标单击");
}
}
定义键盘类:
package demo3;
public class KeyBoard implements USB{
@Override
public void open() {
System.out.println("键盘开启,绿灯闪一闪");
}
@Override
public void close() {
System.out.println("键盘关闭,绿灯熄灭");
}
public void type(){
System.out.println("键盘打字");
}
}
定义笔记本类:
package demo3;
public class Laptop {
//笔记本开启运行功能
public void run(){
System.out.println("笔记本运行");
}
//笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备
public void useUSB(USB usb){
//判断是否有USB设备
if(usb!=null){
usb.open();
//类型转换,调用特有方法
if(usb instanceof Mouse){
Mouse m=(Mouse) usb;
m.click();
}else if(usb instanceof KeyBoard){
KeyBoard kb=(KeyBoard) usb;
kb.type();
}
usb.close();
}
}
public void shutDown(){
System.out.println("笔记本关闭");
}
}
测试类:
package demo3;
public class Test {
public static void main(String[] args) {
//创建笔记本实体对象
Laptop lt=new Laptop();
//笔记本开启
lt.run();
//创建鼠标实体对象
USB u=new Mouse();
//笔记本使用鼠标
lt.useUSB(u);
//创建键盘实体对象
KeyBoard kb=new KeyBoard();
//笔记本使用键盘
lt.useUSB(kb);
//笔记本关闭
lt.shutDown();
}
}
相关文章
- java 上传文件接口_Java接口实现文件上传
- java 取余和取整_Java取整、取余
- 中级java笔试题_Java中级面试题合集[通俗易懂]
- java从入门到精通_Java 入门到精通的过程
- java运行环境_如何搭建Java运行环境?
- java工作流_Java 实现简单工作流
- java messagedigest_Java 自带的加密类MessageDigest类(加密MD5和SHA)[通俗易懂]
- java public interface_Java 接口interface的基础[通俗易懂]
- 【说站】java内存泄漏
- JAVA外文参考文献_java参考文献近五年
- 用Java技术创建RESTful Web服务详解架构师
- [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念详解编程语言
- 插入排序的Java代码实现详解编程语言
- Java抽象(abstract)类详解
- 深入Linux环境下Java应用调试实践(linux调试java)
- 删除Linux中的Java程序(linux删除java)
- 解析Java中的Linux路径(java中linux路径)
- 操作使用Java操作Redis实现数据过期(redisjava过期)
- Java实现Redis数据写入(java写入redis)
- 处理使用Java操作Redis实现过期数据处理(redisjava过期)
- Linux平台上C语言接口调用Java语言实现(linux c调java)
- Java实现Linux:跨平台解决方案(java 实现linux)
- Linux下Java命令的使用方法简介(linux下java命令)
- Linux与Java结合,打造完美解决方案(linux和java)
- Java在Linux下促进发展的力量(java linux)
- 异常Java程序捕获Oracle异常从失败中学习(java捕获oracle)
- Java存入Oracle数据库实现快速高效的数据存储(java存入oracle)
- Java如何帮助掌握Oracle(java了解oracle)
- Redis中使用Java快速实现自增(redis自增 java)
- Java经验点滴:处理没有被捕获的异常
- java进行文件读写操作详解