接口的应用实例-------USB接口

主函数:

package Ex.ex01;
/*模仿USB接口的使用
*
* 首先鼠标,键盘都有是USB设备,所以都符合USB的规则。
* 都可以打开设备,关闭设备。这样我们可以创建一个USB接口,里面最基本的功能是打开设备,关闭设备。
*
* 接口:USB
*   抽象方法:1.打开设备
*           2.关闭设备
* 实现类:鼠标
*   方法:点击
* 实现类:键盘
*   方法:输入
*有了接口我们就要使用,电脑可以使用USB接口,所以我们再创建一个电脑类
* 电脑:
*     成员方法:使用usb设备
*             开机
*             关机
*
*
* */
public class Demo01 {
    public static void main(String[] args) {
        Computer computer = new Computer();//第一步:创建一个电脑对象
        computer.open();//第二步开机
        Keyboard keyboard = new Keyboard();//直接创建一个键盘对象
        Usb mouse = new Mouse();//向上转型,创建一个鼠标对象
        computer.usbDevice(keyboard);//使用键盘
        computer.usbDevice(mouse);//使用鼠标
        /*这里我们可以看到,usbDevice方法的参数列表是usb接口类型的,
        * 但是我们创建键盘是直接根据键盘的类进行创建的,并没有向上转型称为usb类的对象
        * 可是这样依然可以作为参数传递。因为在传递的时候,编译器将它自动的向上转型了。*/
        computer.close();//关机

    }
}

接口:

package Ex.ex01;

public interface Usb {
    public abstract void open();
    public abstract void close();
}

电脑类:

	package Ex.ex01;

public class Computer {
    public void open(){
        System.out.println("开机");
    }
    public void close(){
        System.out.println("关机");
    }
    public void usbDevice(Usb usb){
        usb.open();
        /*我们要判断具体是什么usb设备,才能实现他具体的功能,所以这里要向下转型判断*/
        if(usb instanceof Keyboard){
            Keyboard keyboard = (Keyboard) usb;
            keyboard.type();
        }
        else if (usb instanceof  Mouse){
            Mouse mouse = (Mouse) usb;
            mouse.click();
        }

        usb.close();
    }
}

键盘类:

package Ex.ex01;

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("键盘输入");
    }
}

鼠标类:

package Ex.ex01;

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("点击鼠标");
    }
}

猜你喜欢

转载自blog.csdn.net/chen404897439/article/details/91557379