Java 接口和多态练习
2024-10-07 07:11:17
我们鼠标和键盘实现USB接口,那么我们鼠标和键盘就变成了USB设备,这时候我们就可以把它放到笔记本电脑里面去用
package com.biggw.day10.demo07; /**
* @author gw
* @date 2019/11/2 0002 下午 16:46
*/
public class Computer {
public void open() {
System.out.println("打开电脑!");
} public void close() {
System.out.println("关闭电脑!");
} public void useDevice(Usb usb) {
if (usb instanceof KeyBorad) {
KeyBorad keyBorad = (KeyBorad) usb;
keyBorad.open();
keyBorad.type();
keyBorad.close();
} else if (usb instanceof Mouse) {
Mouse mouse = (Mouse) usb;
mouse.open();
mouse.click();
mouse.close();
}
}
}
Computer
package com.biggw.day10.demo07; /**
* @author gw
* @date 2019/11/2 0002 下午 16:42
*/
public interface Usb {
public abstract void open(); public abstract void close();
}
Usb 接口
package com.biggw.day10.demo07; /**
* @author gw
* @date 2019/11/2 0002 下午 16:44
*/
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("点击鼠标!");
}
}
Mouse Usb接口的实现类
package com.biggw.day10.demo07; /**
* @author gw
* @date 2019/11/2 0002 下午 16:43
*/
public class KeyBorad implements Usb {
@Override
public void open() {
System.out.println("打开键盘!");
} @Override
public void close() {
System.out.println("关闭键盘!");
} public void type() {
System.out.println("键盘输入文字!");
}
}
KeyBoard Usb接口的实现类
package com.biggw.day10.demo07; /**
* @author gw
* @date 2019/11/2 0002 下午 16:52
*/
public class Main {
public static void main(String[] args) {
Usb usb = new KeyBorad();
Usb usb1 = new Mouse(); Computer computer = new Computer();
computer.open();
computer.useDevice(usb);
computer.useDevice(usb1);
computer.close(); /*点击鼠标!
打开电脑!
打开键盘!
键盘输入文字!
关闭键盘!
打开鼠标!
关闭鼠标!
关闭电脑!*/
}
}
Main 方法入口
最新文章
- JVM之Class文件结构
- npm 使用记录
- struct与union字节大小的终极解释
- RedHat下编译安装Boost
- 【转】unity开发android游戏(一)搭建Unity安卓开发环境
- 算法效果AB测试中的PV-UV不对称性
- HDU 4089 Activation(概率DP)(转)
- Safari HTML5 Canvas Guide: Creating Charts and Graphs
- openNebulafrontEnd ComputeNode 配置记录
- LPC1788的spi使用
- Dijkstra算法的二叉堆优化
- php 守护进程类
- 与班尼特·胡迪一起做生意 (HZUN-2261)
- 发送邮件工具类MailHelper
- css奇技淫巧-色彩渐变与动态渐变
- LINUX 系统下部署 NFS服务
- js apply使用
- ArcGIS案例学习笔记2_2_模型构建器和山顶点提取批处理
- mysql_事务
- 原生javascript封装的函数