Java--多态小案例

笔记本电脑链接鼠标和键盘

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

1. 案例分析

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

2. 案例实现

定义USB接口:
		interface USB {
		    void open();// 开启功能
		    void close();// 关闭功能
		}
		
定义鼠标类:
		class Mouse implements USB {
		    public void open() {
		        System.out.println("鼠标开启,红灯闪一闪");
		    }
		    public void close() {
		        System.out.println("鼠标关闭,红灯熄灭");
		    }
		    public void click(){
		        System.out.println("鼠标单击");
		    }
		}
		
定义键盘类:
		class KeyBoard implements USB {
		    public void open() {
		        System.out.println("键盘开启,绿灯闪一闪");
		    }
		    public void close() {
		        System.out.println("键盘关闭,绿灯熄灭");
		    }
		    public void type(){
		        System.out.println("键盘打字");
		    }
		}
		
定义笔记本类:
		class Laptop {
		    // 笔记本开启运行功能
		    public void run() {
		        System.out.println("笔记本运行");
		    }
		    // 笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备
		    public void useUSB(USB usb) {
		        // 判断是否有USB设备
		        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("笔记本关闭");
		    }
		}
		
测试类,代码如下:
		public class Test {
		    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();
		    }
		}

总结

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

end

谢谢您的阅读 !

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值