接口多态的综合案例

笔记本电脑

1、 对于笔记本电脑的基本介绍:

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

2、对案例进行分析:

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

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

        c、鼠标类,要实现USB接口,并具备点击的方法;

        d、键盘类,要实现USB接口,具备敲击的方法。

3、本案例的实现

        a、定义USB接口

        代码:

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

         b、定义鼠标类实现USB接口并添加新的方法

        代码:

public class Mouse implements USB{
    public void open() {
        System.out.println("鼠标开启,红灯闪一闪");
    }
    public void close() {
        System.out.println("鼠标关闭,红灯熄灭");
    }
    public void click(){
        System.out.println("鼠标单击");
    }
}

 c、定义键盘类实现USB接口并添加新的方法

public class KeyBoard implements USB{
    public void open() {
        System.out.println("键盘开启,绿灯闪一闪");
    }
    public void close() {
        System.out.println("键盘关闭,绿灯熄灭");
    }
    public void type(){
        System.out.println("键盘打字");
    }
}

d、定义笔记本类实现USB接口并添加新的方法

public class Laptop {
    // 笔记本开启运行功能
    public void run() {
        System.out.println("笔记本运行");
    }
    // 笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备
    public void useUSB(USB usb) {
// 判断是否有USB设备
        if (usb != null) {
            usb.open();
// 类型转换,调用特有方法
            if(usb instanceof Mouse){
                Mouse m =(Mouse)usb;
                m.click();
            }else if (usb instanceof KeyBoard){
                KeyBoard kb = (KeyBoard)usb;
                kb.type();
            }
            usb.close();
        }
    }
    public void shutDown() {
        System.out.println("笔记本关闭");
    }
}

e、测试类

public class Test1 {
    public static void main(String[] args) {
// 创建笔记本实体对象
        Laptop lt = new Laptop();
// 笔记本开启
        lt.run();
// 创建鼠标实体对象
        USB u = new Mouse();
// 笔记本使用鼠标
        lt.useUSB(u);
// 创建键盘实体对象
        KeyBoard kb = new KeyBoard();
// 笔记本使用键盘
        lt.useUSB(kb);
// 笔记本关闭
        lt.shutDown();
    }
}

总结:

以上就是接口多态的综合案例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值