
普歌- LRF-(简单易懂)笔记本电脑USB接口案例 接口多态(向下转型)
发布日期:2021-05-07 11:03:16
浏览次数:9
分类:原创文章
本文共 1587 字,大约阅读时间需要 5 分钟。
USB接口案例实现步骤:
分析:
1)USB接口:具有打开和关闭的功能
2)鼠标类:鼠标使用USB接口,拥有打开和关闭功能,并且具有点击功能
3)键盘类:键盘使用USB接口,拥有打开和关闭功能,并且具有输入功能
4)电脑类:拥有开机和关机功能(开机和关机并不需要USB接口),能实现USB接口,可以利用USB接口使用鼠标和键盘
5)测试类:对于电脑的开关机以及鼠标键盘的打开,关闭,点击,输入进行测试
实现:
USB接口:
public interface USB {public abstract void open();//打开public abstract void close();//关闭}
鼠标类:
public class Mouse implements USB{@Overridepublic void open() { System.out.println("打开鼠标");}//鼠标特定方法点击public void click() { System.out.println("鼠标点击");}@Overridepublic void close() { System.out.println("关闭鼠标");}}
键盘类:
public class Keyboard implements USB {@Overridepublic void open() { System.out.println("打开键盘");}//键盘特定方法输入public void input() { System.out.println("键盘输入");}@Overridepublic void close() { System.out.println("关闭键盘");}}
电脑类:
public class Computer { public void powerOn() { System.out.println("笔记本电脑开机");}public void powerOff() { System.out.println("笔记本电脑关机");}public void useDevice(USB usb) { usb.open(); //使用instanceof关键字,判断usb是键盘还是鼠标 if (usb instanceof Mouse) { //向下转型 Mouse mouse = (Mouse) usb; mouse.click(); } else if (usb instanceof Keyboard) { //向下转型 Keyboard keyboard = (Keyboard) usb; keyboard.input(); } usb.close();}}
测试类:
public class Test {public static void main(String[] args) { //创建电脑对象 Computer computer = new Computer(); computer.powerOn(); //创建鼠标对象 USB usb1 = new Mouse(); computer.useDevice(usb1); USB usb2 = new Keyboard(); computer.useDevice(usb2); computer.powerOff();}}
结果:
笔记本电脑开机打开鼠标鼠标点击关闭鼠标打开键盘键盘输入关闭键盘笔记本电脑关机
感谢您的阅读,不足之处欢迎指正!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年03月22日 14时45分40秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python时间格式转换time模块
2019-03-04
文件校验
2019-03-04
python can i use return in wiht statement?
2019-03-04
coddenomicon工具
2019-03-04
create-react-app第一步
2019-03-04
testng测试工具简介
2019-03-04
mysql查看数据库状态
2019-03-04
怎么去利用已有的数据做分析?
2019-03-04
小程序开发之第三天
2019-03-04
某易游戏经典吃豆豆动画404页面源码
2019-03-04
专升本——英语视频学习
2019-03-04
Future education software
2019-03-04
C语言——经典200道实例【基础例题100道——进阶例题100道】
2019-03-04
数据结构——线性表&树&图的【数据元素名称-有无结点-内部之间的关系】的区别
2019-03-04
不知道考研各科课程那个老师的课好?怎么选择安排?在哪找课程课本资料?看这里
2019-03-04
考研高数一_高数二_高数三考试大纲
2019-03-04
【无线传感器网络简明教程-学习笔记8】第八章 无线传感器网络试验
2019-03-04
【考研高数-高等数学-基础】第四章 不定积分
2019-03-04
【考研高数-高等数学-基础】第六章 定积分的应用
2019-03-04
【考研英语-基础-简单句】简单句的核心变化_谓语情态
2019-03-04