Java基础 第二节 第十六课

举报
我是小白呀iamarookie 发表于 2021/09/10 22:36:53 2021/09/10
【摘要】 接口多态的综合案例 笔记本电脑案例分析案例分析 笔记本电脑 笔记本电脑 ( laptop ) 通常具备使用 USB 设备的功能. 在生产时, 笔记本电脑预留了可以插入 USB 设备的 US...

接口多态的综合案例

笔记本电脑

笔记本电脑 ( laptop ) 通常具备使用 USB 设备的功能. 在生产时, 笔记本电脑预留了可以插入 USB 设备的 USB 接口. 但具体是什么 USB 设备, 笔记本厂商并不关心, 只要符合 USB 规格的设备都可以.

定义 USB 接口, 具体最基本的开启功能和关闭功能. 鼠标和键盘要想能在电脑上使用, 那么鼠标和键盘也必须遵守 USB 规范, 否则鼠标和键盘的生产出来也无法使用.

案例分析

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

  • USB 接口, 包含开启功能, 关闭功能
  • 笔记本类, 包含运行功能, 关机功能, 使用 USB 设备功能
  • 鼠标类, 要实现 USB 接口, 并具备点击的方法
  • 键盘类, 要实现 USB 接口, 具备敲击的方法

案例分析

定义 USB 接口:

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

  
 
  • 1
  • 2
  • 3
  • 4

定义鼠标类:

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

定义键盘类:

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("键盘打字");
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

定义笔记本类:

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("笔记本关闭");
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

测试类:

public class Test4 {
    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();
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/110159714

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。