Java基础 第二节 第十六

网友投稿 568 2022-05-28

接口多态的综合案例

笔记本电脑

案例分析

案例分析

笔记本电脑

笔记本电脑 ( 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

Java基础 第二节 第十六课

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

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Fat32磁盘结构与数据恢复实验
下一篇:【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )
相关文章