【Java】一个简单的接口例子(帮助理解接口+多态)

要求:

请实现笔记本电脑使用USB鼠标、USB键盘的例子

  1. USB 接口:包含打开设备、关闭设备功能
  2. 笔记本类:包含开机功能、关机功能、使用 USB 设备功能
  3. 鼠标类:实现 USB 接口,并具备点击功能
  4. 键盘类:实现 USB 接口,并具备输入功能
    (不需要具体实现,给出框架即可)
    代码:一个接口+四个类(键盘类+鼠标类+电脑类+测试类)
java 复制代码
package csdn;

import javax.swing.*;

public class computer {


    public void powerOn(){
        System.out.println("打开笔记本电脑");
    }


    public void powerOff(){
        System.out.println("关闭笔记本电脑");
    }


    public void useDevice(IUSB iusb){
        iusb.openDevice();  //打开服务
        if(iusb instanceof Mouse){
            Mouse mouse=(Mouse)iusb; //向下转型
            mouse.click();
        }else if(iusb instanceof keyBoard){
            keyBoard keyBoard=(keyBoard)iusb; //向下转型
            keyBoard.input();
        }
        iusb.closeDevice(); //关闭服务

    }
}
java 复制代码
package csdn;

public interface IUSB {
    void openDevice();  //打开服务
    void closeDevice();  //关闭服务
}
java 复制代码
package csdn;

public class keyBoard implements IUSB {
    @Override
    public void openDevice() {
        System.out.println("打开键盘");
    }

    @Override
    public void closeDevice() {
        System.out.println("关闭键盘");
    }
    public void input(){
        System.out.println("敲击键盘输入");
    }
}
java 复制代码
package csdn;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

public class Mouse implements IUSB {
    @Override
    public void openDevice() {
        System.out.println("打开鼠标服务");
    }

    @Override
    public void closeDevice() {
        System.out.println("关闭鼠标服务");
    }
    public void  click(){
        System.out.println("点击鼠标");
    }
}
java 复制代码
package csdn;

public class test {
    public static void main(String[] args) {
        computer computer=new computer();

        Mouse mouse=new Mouse();
        keyBoard keyBoard=new keyBoard();

        computer.useDevice(mouse);  //向上转型
        System.out.println("===========");
        computer.useDevice(keyBoard);  //向上转型
    }
}
相关推荐
讳疾忌医丶5 分钟前
深度拆解 RocksDB 内核:基于 C++17 的 FIFO 调度状态机与温度阶梯自愈设计
java·c++·算法·架构
郑州光合科技余经理28 分钟前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
毅炼28 分钟前
Rover-Suite 开源发布:轻量服务注册中心与网关一体化方案
java·后端·系统架构·gateway
梦想平凡1 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
sunshine22 girl2 小时前
Idea中如何搜索
java·ide·intellij-idea
猫吻鱼2 小时前
【AI 01】【Spring AI 基础使用】
java·spring·spring ai
梨涡泥窝2 小时前
基于SSM的校园二手交易平台的设计与实现
java·tomcat
许彰午3 小时前
44-useRowSet镜像实现
java·低代码·架构
bamboolm3 小时前
springboot+Ollama整合
java·ollama
我不会起名字3224 小时前
一天一道算法题(34):回溯法的经典例题(子集)
java·数据结构·python·算法·golang·深度优先·力扣