题目
笔记本电脑使用鼠标、键盘
分析
笔记本电脑是一个类,鼠标是一个类,键盘是一个类------鼠标和键盘都是通过USB插到笔记本电脑上的,我们就可以把USB插口理解为一个接口,也就是多个类的公共规范。
编程中,我们就需要实现三个类和一个接口。
实现
1.编写各个类的公共规范 ---> 接口
/**
* @author : sunkepeng E-mail:sunkepengouc@163.com
* @date : 2020/7/22 11:57
*/
public interface Usb {
void open();
void close();
}
2.编写笔记本电脑类
/**
* @author : sunkepeng E-mail:sunkepengouc@163.com
* @date : 2020/7/22 11:57
*/
public class Laptop {
public void powerOn(){
System.out.println("开机");
}
public void powerOff(){
System.out.println("关机");
}
/**
* 使用USB设备的方法,使用接口作为方法的参数
* @param usb
*/
public void userDevice(Usb usb){
usb.open();
if(usb instanceof Mouse){
Mouse mouse = (Mouse) usb;
mouse.click();
} else if (usb instanceof KeyBoard) {
KeyBoard keyBoard = (KeyBoard) usb;
keyBoard.touch();
}
usb.close();
}
}
3.编写键盘类
/**
* @author : sunkepeng E-mail:sunkepengouc@163.com
* @date : 2020/7/22 12:07
*/
public class KeyBoard implements Usb{
@Override
public void open() {
System.out.println("打开键盘");
}
@Override
public void close() {
System.out.println("关闭键盘");
}
public void touch(){
System.out.println("敲击键盘");
}
}
4.编写鼠标类
/**
* @author : sunkepeng E-mail:sunkepengouc@163.com
* @date : 2020/7/22 12:06
*
* 鼠标是一种USB设备
*/
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("点击鼠标");
}
}
5.使用
/**
* @author : sunkepeng E-mail:sunkepengouc@163.com
* @date : 2020/7/22 12:08
*
* 用接口作为统一标准,以笔记本电脑为例,
* 用USB接口作为统一标准,笔记本电脑需要USB属性,那么就可以把参数定义为USB,就可以向里面传参数并
* 使用,鼠标和键盘只要实现USB中的功能就可以通用
*/
public class UseComputer {
public static void main(String[] args) {
// 创建笔记本实例
Laptop laptop = new Laptop();
laptop.powerOn();
// 准备鼠标供笔记本使用,多态,向上转型
Usb mouse = new Mouse();
// 把鼠标作为参数穿进去
laptop.userDevice(mouse);
// 创建一个键盘,不用多态
KeyBoard keyBoard = new KeyBoard();
// 方法参数是USB类型,传递进去的是实现类对象,实现类向上转换成接口
laptop.userDevice(keyBoard);
laptop.powerOff();
}
}