到底如何使用“接口”,示例阐述

题目

笔记本电脑使用鼠标、键盘

分析

笔记本电脑是一个类,鼠标是一个类,键盘是一个类------鼠标和键盘都是通过USB插到笔记本电脑上的,我们就可以把USB插口理解为一个接口,也就是多个类的公共规范

编程中,我们就需要实现三个类和一个接口。

实现

1.编写各个类的公共规范 ---> 接口

/**
 * @author : sunkepeng E-mail:sunkepengouc@163.com
 * @date : 2020/7/22 11:57
 */
public interface Usb {
    void open();
    void close();
}

2.编写笔记本电脑类

/**
 * @author : sunkepeng E-mail:sunkepengouc@163.com
 * @date : 2020/7/22 11:57
 */
public class Laptop {
    public void powerOn(){
        System.out.println("开机");
    }
    public void powerOff(){
        System.out.println("关机");
    }
    /**
     * 使用USB设备的方法,使用接口作为方法的参数
     * @param usb
     */
    public void userDevice(Usb usb){
        usb.open();
        if(usb instanceof Mouse){
            Mouse mouse = (Mouse) usb;
            mouse.click();
        } else if (usb instanceof KeyBoard) {
            KeyBoard keyBoard = (KeyBoard) usb;
            keyBoard.touch();
        }
        usb.close();
    }
}

3.编写键盘类

/**
 * @author : sunkepeng E-mail:sunkepengouc@163.com
 * @date : 2020/7/22 12:07
 */
public class KeyBoard implements Usb{
    @Override
    public void open() {
        System.out.println("打开键盘");
    }
    @Override
    public void close() {
        System.out.println("关闭键盘");
    }
    public void touch(){
        System.out.println("敲击键盘");
    }
}

4.编写鼠标类

/**
 * @author : sunkepeng E-mail:sunkepengouc@163.com
 * @date : 2020/7/22 12:06
 *
 * 鼠标是一种USB设备
 */
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("点击鼠标");
    }
}

5.使用

/**
 * @author : sunkepeng E-mail:sunkepengouc@163.com
 * @date : 2020/7/22 12:08
 *
 * 用接口作为统一标准,以笔记本电脑为例,
 * 用USB接口作为统一标准,笔记本电脑需要USB属性,那么就可以把参数定义为USB,就可以向里面传参数并
 * 使用,鼠标和键盘只要实现USB中的功能就可以通用
 */
public class UseComputer {
    public static void main(String[] args) {
        // 创建笔记本实例
        Laptop laptop = new Laptop();
        laptop.powerOn();

        // 准备鼠标供笔记本使用,多态,向上转型
        Usb mouse = new Mouse();
        // 把鼠标作为参数穿进去
        laptop.userDevice(mouse);

        // 创建一个键盘,不用多态
        KeyBoard keyBoard = new KeyBoard();
        // 方法参数是USB类型,传递进去的是实现类对象,实现类向上转换成接口
        laptop.userDevice(keyBoard);

        laptop.powerOff();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值