笔记本接口实现案例

本文通过Java代码详细解析了多态的概念及其应用,特别是在处理不同类型的USB设备(如鼠标和键盘)时如何利用多态进行统一的接口设计。通过具体的类和接口实例,展示了如何在运行时根据实际对象的类型调用相应的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package duotai.lianxi1.lainxi2;

public class Computer  {
    public void powerOn(){
        System.out.println("开机");
    }
    public void poweroff(){
        System.out.println("关机");
    }
    //使用USB设备的方法 使用接口作为方法的参数
    public void usbDe(Usb usb){
        usb.open();  //打开设备
        if (usb instanceof Mouse){
            Mouse mouse=(Mouse) usb;   // 一点要先判断
            mouse.click();             //向下转型
        }
        else if (usb instanceof Keyboard){     //先判断
            Keyboard keyboard=(Keyboard) usb;   //向下转型
            keyboard.tyep();
        }
        usb.close();  //关闭设备
    }
}
~~~~~~~~  


package duotai.lianxi1.lainxi2;
//
public class Keyboard implements Usb {
    @Override
    public void open() {
        System.out.println("打开键盘");
    }

    @Override
    public void close() {
        System.out.println("关闭键盘");
    }
    public static void tyep(){
        System.out.println("键盘输入");
    }
}


~~删除线格式~~ 

package duotai.lianxi1.lainxi2;

public class Mouse implements Usb {
    @Override
    public void open() {
        System.out.println("打开鼠标");
    }

    @Override
    public void close() {
        System.out.println("关闭鼠标");
    }
    public static void click(){
        System.out.println("点击鼠标");
    }
}

====

package duotai.lianxi1.lainxi2;

public class Test {
    public static void main(String[] args) {
        Computer computer1=new Computer();
        computer1.powerOn();
        Mouse mouse=new Mouse();
        //先向上转型为接口 然后再调用
        Usb usbmouse=mouse;  //多态写法
        //参数是Usb接口类型鼠标
        computer1.usbDe(usbmouse);
        //  创建一个usb键盘
        Keyboard keyboard=new Keyboard();//没有写多态写法
        //方法参数是Usb类型,传递进去的是实现类对象
        computer1.usbDe(keyboard);   //正确写法 也发生了向上转型
        //使用子类对象 匿名对象也是可以的
//        computer1.usbDe(new Keyboard()); 也是正确写法


        computer1.poweroff();
        System.out.println("======例子");

        method(10.0);//正确写法 double-->double
        method(10);//正确写法 int-->double
        int a=10;
        method(a);//正确写法 int-->double
    }
    public static void method(double n){
        System.out.println(n);
    }
}

====
package duotai.lianxi1.lainxi2;

public interface Usb {
    public abstract void open();
    public abstract void close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值