JAVA-多态应用例子(接口等)

定义USB接口(具备开启功能、关闭功能),笔记本要使用USB设备,即笔记本在生产时需要预留可以插入USB设备的USB接口,即就是笔记本具备使用USB设备的功能,但具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,不然鼠标和键盘的生产出来无法使用

进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘

l  USB接口,包含开启功能、关闭功能

l  笔记本类,包含运行功能、关机功能、使用USB设备功能

l  鼠标类,要符合USB接口

l  键盘类,要符合USB接口

 

1、定义USB接口

interface USB {
    void open();// 开启功能
    void close();// 关闭功能
}

2、  鼠标实现USB规则

class Mouse implements USB {
    public void open() {
        System.out.println("鼠标开启");
    }

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

3、键盘实现USB规则

class KeyBoard implements USB {
    public void open() {
        System.out.println("键盘开启");
    }

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

4、定义笔记本

class NoteBook {
    // 笔记本开启运行功能
    public void run() {
        System.out.println("笔记本运行");
    }

    // 笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备
    public void useUSB(USB usb) { //这里就是多态   USB usb = new Mouse();
        // 判断是否有USB设备
        if (usb != null) {
            usb.open();
            usb.close();
        }
    }

    public void shutDown() {
        System.out.println("笔记本关闭");
    }
}

5、运行

public class Test {
    public static void main(String[] args) {
        // 创建笔记本实体对象
        NoteBook nb = new NoteBook();
// 笔记本开启
        nb.run();

        // 创建鼠标实体对象
        Mouse m = new Mouse();
        // 笔记本使用鼠标
        nb.useUSB(m);

// 创建键盘实体对象
        KeyBoard kb = new KeyBoard();
        // 笔记本使用键盘
        nb.useUSB(kb);

        // 笔记本关闭
        nb.shutDown();
    }
}

原文地址:https://www.cnblogs.com/BruceKing/p/13293901.html