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

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

要求:

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

1. USB 接口:包含打开设备、关闭设备功能

2. 笔记本类:包含开机功能、关机功能、使用 USB 设备功能

3. 鼠标类:实现 USB 接口,并具备点击功能

4. 键盘类:实现 USB 接口,并具备输入功能

(不需要具体实现,给出框架即可)

代码:一个接口+四个类(键盘类+鼠标类+电脑类+测试类)


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(); //关闭服务
 
    }
}
package csdn;
 
public interface IUSB {
    void openDevice();  //打开服务
    void closeDevice();  //关闭服务
}
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("敲击键盘输入");
    }
}
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("点击鼠标");
    }
}
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);  //向上转型
    }
}
目录
相关文章
|
6天前
|
Java 开发者
奇迹时刻!探索 Java 多线程的奇幻之旅:Thread 类和 Runnable 接口的惊人对决
【8月更文挑战第13天】Java的多线程特性能显著提升程序性能与响应性。本文通过示例代码详细解析了两种核心实现方式:Thread类与Runnable接口。Thread类适用于简单场景,直接定义线程行为;Runnable接口则更适合复杂的项目结构,尤其在需要继承其他类时,能保持代码的清晰与模块化。理解两者差异有助于开发者在实际应用中做出合理选择,构建高效稳定的多线程程序。
26 7
|
6天前
|
前端开发 JavaScript Java
【前端学java】Java中的接口和枚举概念(8)
【8月更文挑战第9天】Java中的接口和枚举概念(8)
23 4
|
4天前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
|
11天前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
38 8
|
10天前
|
数据采集 Java API
java接口防爬虫
8月更文挑战第9天
|
6天前
|
Java
Java 新手入门:Java 封装、继承、多态详解
Java 新手入门:Java 封装、继承、多态详解
16 1
|
11天前
|
安全 算法 Java
17 Java多线程(线程创建+线程状态+线程安全+死锁+线程池+Lock接口+线程安全集合)(下)
17 Java多线程(线程创建+线程状态+线程安全+死锁+线程池+Lock接口+线程安全集合)
47 6
|
3天前
|
Java
SpringBoot java 一个接口,多个实现,客户定制化
SpringBoot java 一个接口,多个实现,客户定制化
10 0
|
4天前
|
Java API
Java9 Lambda 设计和实现问题之IntStream, LongStream 等类型特定的流接口基于 AbstractPipeline 是如何实现的
Java9 Lambda 设计和实现问题之IntStream, LongStream 等类型特定的流接口基于 AbstractPipeline 是如何实现的
|
5天前
|
Java
Java多态初探
Java多态初探
8 0