Java 案例十 接口多态案例的实现

1.案例介绍

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

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

  1. USB接口,包含开启功能、关闭功能
  2. 笔记本类,包含运行功能、关机功能、使用USB设备功能
  3. 鼠标类,要符合USB接口
  4. 键盘类,要符合USB接口

 2.案例需求分析

 

阶段一:使用笔记本,笔记本有运行功能,需要笔记本对象来运行这个功能

阶段二:想使用一个鼠标,又有一个功能使用鼠标,并多了一个鼠标对象。

阶段三:还想使用一个键盘 ,又要多一个功能和一个对象

问题:每多一个功能就需要在笔记本对象中定义一个方法,不爽,程序扩展性极差。

降低鼠标、键盘等外围设备和笔记本电脑的耦合性。

3.实现代码步骤

 

  1. 定义鼠标、键盘,笔记本三者之间应该遵守的规则
    package cn.itcast.demo09;
    /*
     * 	自定义的USB接口类
     * 	规范,就是抽象方法
     * 	开关
     */
    public interface USB {
    	public abstract void open();
    	public abstract void close();
    }
    

     

  2. 鼠标实现USB规则
    package cn.itcast.demo09;
    /*
     * 自定义的鼠标类
     * 满足USB接口规范
     * 实现USB的接口,重写抽象方法
     */
    public class Mouse implements USB {
    	public void open(){
    		System.out.println("开启鼠标");
    	}
    	
    	public void close(){
    		System.out.println("关闭鼠标");
    	}
    }
    

     

  3. 键盘实现USB规则
    package cn.itcast.demo09;
    
    public class KeyBoard implements USB{
    	public void open(){
    		System.out.println("开启键盘");
    	}
    	
    	public void close(){
    		System.out.println("关闭键盘");
    	}
    }
    

     

  4. 定义笔记本
    package cn.itcast.demo09;
    /*
     * 定义好的笔记本类
     * 功能:开机,关机,使用USB设备
     * 
     */
    public class Computer {
    	public void openComputer(){
    		System.out.println("笔记本开机");
    	}
    	
    	public void closeComputer(){
    		System.out.println("笔记本关机");
    	}
    	
    	//使用USB设备方法,那个设备?
    	//方法的参数,就是USB设备
    	public void useUSB(USB usb){
    		usb.open();
    		usb.close();
    	}
    }
    

     

  5. 测试类
    package cn.itcast.demo09;
    
    public class Test {
    
    	public static void main(String[] args) {
    		//创建笔记本对象,调用笔记本的功能
    		Computer com = new Computer();
    		com.openComputer();
    		
    		//调用笔记本使用USB设备的方法
    		//参数,是USB接口类型,接口不能建立对象
    		//调用方法,传递USB接口的实现类的对象
    		Mouse m = new Mouse();
    		com.useUSB(m);
    		
    		//使用USB设备,使用键盘
    		com.useUSB(new KeyBoard());
    		
    		com.closeComputer();
    	}
    
    }
    

    运行结果:

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子非愚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值