Java接口实现多态 -- 笔记本电脑综合实例

举报
ksh1998 发表于 2021/12/26 00:17:24 2021/12/26
【摘要】 前言 在开始分享之前,请大家思考三个问题 。 1,什么是多态? 2,多态有几种实现方式(除了接口还有什么可以实现多态,答案不唯一。) 3,多态的好处 答案:大家可以把自己的见解分享到下面评论里 下面以接口...

前言
在开始分享之前,请大家思考三个问题 。
1,什么是多态?
2,多态有几种实现方式(除了接口还有什么可以实现多态,答案不唯一。)
3,多态的好处
答案:大家可以把自己的见解分享到下面评论里
下面以接口的方式,实现多态。

案例

在这里插入图片描述

案例分析

功能分析:

在这里插入图片描述

关系图:

在这里插入图片描述
从这个关系图里可以看到,接口和电脑之间的关系。以及接口和鼠标,键盘之间的关系。

案例实现

USB接口:

 package cn.itcast.day10.demo07;

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


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

键盘类:实现USB接口

 package cn.itcast.day10.demo07;
//键盘本身就是一个USB设备
public class keyboard implements USB {
    @Override
    public void open() {
        System.out.println("打开键盘");
    }

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


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

鼠标类:实现USB接口

 package cn.itcast.day10.demo07;
//鼠标本身就是一个USB设备
public class Mouse implements USB {
    @Override
    public void open() {
        System.out.println("打开鼠标");
    }

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


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

计算机类:使用USB接口

package cn.itcast.day10.demo07;

public class Computer  {

    //电脑本身自带的功能
    public void powerOn(){
        System.out.println("笔记本电脑开机");
    }
    public  void powerOff(){
        System.out.println("笔记本电脑关机");
    }
    //使用USB接口方法
    public void useDevice(USB usb){
        usb.open();
        usb.close();

    }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

客户端类:

 package cn.itcast.day10.demo07;

public class DemoMain {
    public static void main(String[] args) {
        Computer computer=new Computer();//实例化电脑

        //省略向上转型
        computer.powerOn();
        computer.useDevice(new Mouse());

        //使用向上转型
        USB usb=new keyboard();
        computer.useDevice(usb);

        computer.powerOff();

    }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

结果

在这里插入图片描述

源码模块下载

DemoCode

文章来源: kangshihang.blog.csdn.net,作者:康世行,版权归原作者所有,如需转载,请联系作者。

原文链接:kangshihang.blog.csdn.net/article/details/107291815

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。