Java多态(笔记本电脑实现usb接口)

案例分析:

进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘

USB接口,包含打开设备功能,关闭设备功能

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

鼠标类,要实现USB接口,并具备点击的方法

键盘类,要实现USB接口,具备敲击的方法

重点在于:接口的基本使用、对象的上下转型以及使用接口作为方法的参数 。
1.定义一个USB接口,两个抽象方法

package edu.shengda;

public interface USB {
public abstract void open();//打开设备
public abstract void close();//关闭设备
}

2.定义一个笔记本类,并能实现使用设备

package edu.shengda;

public class Computer {
public void powerOn(){
    System.out.println("笔记本电脑开机");

  }
public void powerOff(){
    System.out.println("笔记本电脑关机");
}
//使用设备的方法
public void useDevice(USB usb){
    usb.open(); //打开设备
    if(usb instanceof Mouse){
         Mouse mouse=(Mouse)usb;
         mouse.click();
    }else if(usb instanceof Keyboard){
        Keyboard keyboard=(Keyboard)usb;
        keyboard.type();
    }
    usb.close();//关闭设备
}
}

3.定义一个鼠标

 package edu.shengda;
//鼠标是一个USB设备
public class Mouse implements USB {
@Override
public void open() {
    System.out.println("打开鼠标");
}

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

4.定义一个键盘

package edu.shengda;
//键盘是一个USB设备
public class Keyboard implements USB {
@Override
public void open() {

    System.out.println("打开键盘");
}

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

5.mian方法

package edu.shengda;

public class DemoMain {
public static void main(String[] args) {
    //创建一个笔记本电脑
    Computer computer=new Computer();
    computer.powerOn();

    //准备一个鼠标,供电脑使用并向上转型
    USB usbMouse=new Mouse();
    //参数是USB类型,传递进去USB鼠标
    computer.useDevice(usbMouse);
    //创建有个USB键盘
    Keyboard keyboard=new Keyboard();//没有使用多态
    //方法参数是USB类型,传递进去的是实现类对象
    computer.useDevice(keyboard);//也发生了转型
    computer.powerOff();
}
}

6.实现结果:
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值