关于接口和多态的一个综合案例

定义一个USB接口,该接口有打开设备和关闭设备两个抽象方法,有一个鼠标类和一个键盘类去实现这个接口,

鼠标有特有的点击击功能,键盘有特有的敲击功能,有一个笔记本电脑去连接这两个设备

首先定义一个接口

public interface UsbInterface {

    public abstract void turn_on();//打开

    public  abstract void turn_off();//关闭
}
View Code

定义一个键盘类去实现接口

public class Keyboard implements UsbInterface {


    @Override
    public void turn_on() {
        System.out.println("打开键盘");
    }

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

    public void strike(){
        System.out.println("敲击功能实现");
    }
}
View Code

定义一个鼠标类实现接口

public class Mouse implements UsbInterface  {

    @Override
    public void turn_on() {
        System.out.println("打开鼠标");
    }

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

    public void click(){
        System.out.println("点击功能实现");
    }
}
View Code

定义一个电脑类

public class LittleComputer {

    public  void  open(){
        System.out.println("开机");
    }

    public void close(){
        System.out.println("关机");
    }

    public void useusb(UsbInterface usb){//用USB接口做参数
        if(usb instanceof Mouse){
            Mouse  mouse = (Mouse)  usb;
            mouse.turn_on();
            mouse.click();
        }

        if(usb  instanceof Keyboard){
            Keyboard keyboard = (Keyboard) usb;
            keyboard.turn_on();
            keyboard.strike();
        }
    }
    public void useusboff(UsbInterface usb){
        usb.turn_off();
    }
}
View Code

main方法进行测试

 public static void main(String[] args){
        LittleComputer computer = new LittleComputer();
        computer.open();
        computer.useusb(new Mouse());//运用匿名对象
        computer.useusb(new Keyboard());
        computer.useusboff(new Mouse());
        computer.useusboff(new Keyboard());
        computer.close();
    }
View Code
原文地址:https://www.cnblogs.com/susexuexi011/p/13799213.html