接口多态的综合案例

本文详细介绍了笔记本电脑如何通过USB接口与鼠标、键盘等设备进行交互,包括USB设备的规范、笔记本电脑类的设计,以及具体实现代码示例。

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

2.案例分析
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
USB接口,包含打开设备功能,关闭设备功能
笔记本类:包含开机功能、关机功能、使用USB设备功能
鼠标类:要实现USB接口,并具备点击的方法
键盘类:要实现USB接口,具备敲击的方法

3.案例实现
在这里插入图片描述

package cn.ly.Day.seven.twentyfour;

public interface USB {
    public abstract  void open();//打开设备
    public  abstract  void close();//关闭设备
}

package cn.ly.Day.seven.twentyfour;

public class Computer {
    public void powerOn(){
        System.out.println("笔记本开机");
    }
    public void powerOff(){
        System.out.println("笔记本关机");
    }
    public void useDevice(USB usb){
        usb.open();//打开设备
        if(usb instanceof  Mouse){
            Mouse mouse= (Mouse) usb;//向下转型
            mouse.click();
        }
        else {
            keyBoard keyboard= (keyBoard) usb;
            keyboard.type();
        }
        usb.close();//关闭设备
    }
}

package cn.ly.Day.seven.twentyfour;

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("点击");
    }
}

package cn.ly.Day.seven.twentyfour;
//键盘是一个USB设备
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("敲击键盘");
    }
}

package cn.ly.Day.seven.twentyfour;

import java.awt.*;

public class Demo01Main {
    public static void main(String[] args) {
        //首先创建一个笔记本电脑
        Computer computer=new Computer();
        computer.powerOn();

       //准备一个鼠标,供电脑使用
//       Mouse mouse=new Mouse();
       //首先进行向上转型
//        USB usb=mouse;

        //或这样写
        USB usb=new Mouse();
        //传递进去参数是usb类型
        computer.useDevice(usb);

        //创建一个USB的键盘
        keyBoard keyboard=new keyBoard();
        //方法参数是USB类型,传递进去的是实现类对象
        computer.useDevice(keyboard);//正确写法!向上转型
        computer.useDevice(new keyBoard());//也是正确写法



        computer.powerOff();
        System.out.println("=========");
        method(10.0);//正确写法,double->double
        method(10);//正确写法,int->double
        int a=20;
        method(a);//正确写法!int-》double

    }
       public  static  void method(double num){
           System.out.println(num);
       }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值