创建一个USB接口
package Day7;/*
*@author wanghongyuan
*@Create 2020/12/13 15:51
*/
// 定义了一个接口是USB,里面有两个抽象类方法,open什么设备,close什么设备都不清楚。
// 抽象类方法是不带大括号的。
public interface USB {
public abstract void open();// 打开设备
public abstract void close();// 关闭设备
}
创建一个笔记本电脑类
package Day7;/*
*@author wanghongyuan
*@Create 2020/12/13 15:53
*/
import Day3.Manager;
import Day3.Member;
public class Computer {
public void ProwOn(){
System.out.println("笔记本电脑开机");
}
public void ProwOff(){
System.out.println("笔记本电脑关机");
}
// 使用设备USB的方法,使用接口作为方法的参数
public void useDevice(USB usb){
// 打开设备
usb.open();
// 关闭设备
usb.close();
// 因为鼠标和键盘都有其特殊的方法
// 这边我们用到判断
if (usb instanceof Keyboard){
Keyboard keyboard = (Keyboard) usb;
//向下转型
keyboard.type();
}if (usb instanceof Mouse){
Mouse mouse = (Mouse) usb;
mouse.click();
}
}
}
创建一个鼠标类实现USB 接口
package Day7;/*
*@author wanghongyuan
*@Create 2020/12/13 15:54
*/
// 鼠标就是一个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("点击鼠标");
}
}
创建一个键盘类实现USB接口
package Day7;/*
*@author wanghongyuan
*@Create 2020/12/13 15:56
*/
// 键盘就是一个USB设备
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("键盘输入");
}
}
创建一个Main方法
package Day7;/*
*@author wanghongyuan
*@Create 2020/12/13 19:13
*/
public class DomeMain {
public static void main(String[] args) {
Computer computer = new Computer();
computer.ProwOn();
USB mouse = new Mouse();
mouse.open();
mouse.close();
System.out.println("===========================");
USB keyboard = new Keyboard();
keyboard.open();
keyboard.close();
System.out.println("==========");
computer.useDevice(mouse);
computer.useDevice(keyboard);
computer.ProwOff();
}
}