菜鸡学习day10_02_接口多态的实现案例(笔记本连接鼠标、usb、键盘+功能)

菜鸡学习day10_02

package day1002;
/*
接口多态的实现案例
实现笔记本使用usb鼠标,usb键盘
usb接口(打开/关闭设备功能)
笔记本(开机/关机/使用usb设备)
鼠标(实现usb接口/点击)
键盘(实现usb接口/敲击)
 */
public class D1002 {
     
    public static void main(String[] args) {
     
        Computer computer = new Computer();//创建电脑
        computer.powerOn();//开机
        Mouse mouse = new Mouse();//创建鼠标
        USB usb1 = new Mouse();//向上转型
        computer.use(usb1);//
        Keyboard keyboard = new Keyboard();
        USB usb2 = new Keyboard();//向上转型
        computer.use(usb2);//
        computer.powerOff();
    }
}
package day1002;
/*
笔记本(开机/关机/使用usb设备)
 */
public class Computer {
     
    public void powerOn(){
     
        System.out.println("打开电脑。");
    }

    public void powerOff(){
     
        System.out.println("关闭电脑。");
    }

    public void use(USB device){
     //使用usb设备
        device.open();//打开设备

        if(device instanceof Mouse){
                 //判断设备
            Mouse mouse = (Mouse) device;
            mouse.method();
        }
        if(device instanceof Keyboard){
     
            Keyboard keyboard = (Keyboard) device;
            keyboard.method();
        }

        device.close();//关闭设备
    }
}
package day1002;
/*
usb接口(打开/关闭设备功能)
 */
public interface USB {
     
    public abstract void open();//打开设备
    public abstract void close();//关闭设备
}
package day1002;
/*
鼠标(实现usb接口/点击)
 */
public class Mouse implements USB {
     
    @Override
    public void open() {
     
        System.out.println("打开鼠标。");
    }

    @Override
    public void close() {
     
        System.out.println("关闭鼠标。");
    }

    public void method(){
     
        System.out.println("鼠标点击功能。");//鼠标特有功能
    }
}
package day1002;
/*
键盘(实现usb接口/敲击)
 */
public class Keyboard implements USB{
     
    @Override
    public void open() {
     
        System.out.println("打开键盘。");
    }

    @Override
    public void close() {
     
        System.out.println("关闭键盘。");
    }

    public void method(){
     
        System.out.println("键盘敲击功能。");//键盘特有功能
    }
}

你可能感兴趣的:(给自己看,java,编程语言)