【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);  //向上转型
    }
}
目录
相关文章
|
15天前
|
Java
Java中的继承和多态是什么?请举例说明。
Java中,继承让子类继承父类属性和方法,如`class Child extends Parent`,子类可重写父类方法。多态允许父类引用指向子类对象,如`Animal a = new Dog()`,调用`a.makeSound()`会根据实际对象类型动态绑定相应实现,增强了代码灵活性和可扩展性。
10 0
|
2天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
3天前
|
设计模式 存储 JavaScript
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
|
8天前
|
Java 开发者
探索 Java 的函数式接口和 Lambda 表达式
【4月更文挑战第19天】Java 中的函数式接口和 Lambda 表达式提供了简洁、灵活的编程方式。函数式接口有且仅有一个抽象方法,用于与 Lambda(一种匿名函数语法)配合,简化代码并增强可读性。Lambda 表达式的优点在于其简洁性和灵活性,常用于事件处理、过滤和排序等场景。使用时注意兼容性和变量作用域,它们能提高代码效率和可维护性。
|
9天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
14 0
Java接口中可以定义哪些方法?
|
10天前
|
设计模式 Java
Java接口与抽象类
Java接口与抽象类
17 0
|
15天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
35 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
17天前
|
存储 Java
java接口和内部类
java接口和内部类
|
18天前
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function<T, R>`用于转换操作,`Predicate<T>`用于布尔判断,`Consumer<T>`用于消费输入,`Supplier<T>`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
30 0
|
19天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
40 0