Java 多态练习题之二

笔记本电脑案例
定义USB接口,具备最基本的开启功能和关闭功能
鼠标和键盘要想能在电脑上使用
那么鼠标和键盘必须遵守USB规范,实现USB接口规范
进行描述笔记本类
实现笔记本使用USB鼠标.USB键盘

1.USB接口,包含打开设备功能,关闭设备功能
2.笔记本类,包含开机功能,关机功能,使用USB功能
3.鼠标类,实现USB接口,并具备点击的功能
4.键盘类,实现USB接口,并具备敲击的方法

usb interface类

package com.homework2;

// 定义一个USB接口类
public interface USB {
    // 接口类中封装的是抽象方法
    // 接口中public和abstract可以省略
    // 打开设备功能
    void OpenEquipment();
    // 关闭设备功能
    void CloseEquipment();
}

鼠标类

package com.homework2;

// 定义一个鼠标类,实现USB接口
public class Mouse implements USB{
    @Override
    public void OpenEquipment() {
        System.out.println("USB鼠标,已连接!");
    }

    @Override
    public void CloseEquipment() {
        System.out.println("USB鼠标,已断开!");
    }

    // 并具备点击功能
    public void Click(){
        System.out.println("点击鼠标!");
    }
}

键盘类

package com.homework2;

public class KeyBoard implements USB{
    @Override
    public void OpenEquipment() {
        System.out.println("USB键盘已经连接!");
    }

    @Override
    public void CloseEquipment() {
        System.out.println("USB键盘已断开");
    }

    public void Knock(){
        System.out.println("敲击键盘!");
    }
}

电脑类

package com.homework2;

// 定义一个电脑类
public class Laptop {

    // 包含开机功能,关机功能,使用USB设备功能
    public void powerOn(){
        System.out.println("power on");
    }
    public void powerOff(){
        System.out.println("power off");
    }

    /*
    方法定义三要素
    1.返回值 void
    2.方法名  useUSB
    3.参数列表  USB
    */
    public void useUSB(USB usb){
        /*
        1.判断USB是否为空,如果为空,程序结束,同时提示USB设备不存在
        2.如果USB设备存在
            2.1 做类型判断
                先连接USB接口
                如果是鼠标,执行鼠标的点击功能
                如果是键盘,执行键盘的敲击功能
                当设备操作完之后,需要关闭设备
            2.2
         */
        if(usb == null){
            System.out.println("该USB设备不存在");
            return;
        }else{
            // 代表存在USB设备
            // 多态
            usb.OpenEquipment();

            // 进行类型判断
            if(usb instanceof Mouse){

                //mouse.OpenEquipment();
                ((Mouse) usb).Click();
                Mouse mouse = (Mouse)usb;
                mouse.Click();
            }else if(usb instanceof KeyBoard){
                //
                KeyBoard keyBoard = (KeyBoard)usb;
                //keyBoard.OpenEquipment();
                keyBoard.Knock();
            }
        }
        usb.CloseEquipment();
    }
}

测试类

package com.homework2;

// 定义一个笔记本测试类
public class TestLaptop {

    public static void main(String[] args) {
        // 构建三个设备对象
        Laptop laptop = new Laptop();
        Mouse mouse = new Mouse();
        KeyBoard keyBoard = new KeyBoard();

        // 使用USB设备
        // 电脑开机
        laptop.powerOn();
        // 使用鼠标设备
        laptop.useUSB(mouse);

        laptop.useUSB(keyBoard);

        // 电脑关机
        laptop.powerOff();

    }
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值