Java中接口的多态

2023-10-26

  • 多态参数

就像我们现实生活中电脑的usb接口,我们既可以接受手机对象,又可以接受相机对象,等等,体现了接口的多态,查看以下代码

接口:

package InterfaceM;

public interface Interface {
    public void join();
    public void stop();
}

手机类:

package InterfaceM;

public class Phone implements Interface{

    @Override
    public void join() {
        System.out.println(this.toString()+"接入了电脑");
    }

    @Override
    public void stop() {
        System.out.println(this.toString()+"离开了电脑");
    }
}

相机类;

package InterfaceM;

public class Camera implements Interface {
    @Override
    public void join() {
        System.out.println(this.toString()+"接入了电脑");
    }

    @Override
    public void stop() {
        System.out.println(this.toString()+"离开了电脑");
    }
}

电脑类:

package InterfaceM;

public class Computer {
    public void work(Interface interF){
        interF.join();
        interF.stop();
    }

    public static void main(String[] args) {
        Camera camera=new Camera();
        Phone phone=new Phone();
        //将相机接入电脑
        Computer computer=new Computer();
        computer.work(camera);
        computer.work(phone);
    }
}

  •  多态数组

在computer类型的数组中,我们即可以存放多种对象类型的数组。而且对应不同的数组对象,我们可以做出不同的事件。

在刚才的上述代码中我们在phone类中加入call功能,要求有插入phone时,调用call函数

package InterfaceM;

public class Computer {
    public void work(Interface interF){
        interF.join();
        interF.stop();
    }

    public static void main(String[] args) {
        Camera camera=new Camera();
        Phone phone=new Phone();
        //将相机接入电脑
        Interface []interf=new Interface[2];
        interf[0]=camera;
        interf[1]=phone;
        Computer computer=new Computer();
        for (int i=0;i<interf.length;i++){
            computer.work(interf[i]);
            if (interf[i]instanceof Phone){
                phone.call();
            }
        }
    }
}

  •  接口的多态传递现象

如果我们运行以下代码,由于ih并没有被teacher继承,会发生报错,但是当我们用ig继承ih之后,我们可以发现这样就不会报错。这样体现出了多态的继承传递现象。

public class Test {
    public static void main(String[] args) {
        IG ig=new Teacher();
        IH ih=new Teacher();
    }
}
interface IH{}
interface IG{}
class Teacher implements IG{
    
}
public class Test {
    public static void main(String[] args) {
        IG ig=new Teacher();
        IH ih=new Teacher();
    }
}
interface IH{}
interface IG extends IH{}
class Teacher implements IG{

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中接口的多态 的相关文章

随机推荐

  • ASCII最小位置索引

    注意 答案仅作为参考 实际考试中下列代码通过用例100 但不代表最优解 输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母 k gt 1 输出该字母所在字符串中的位置索引 字
  • 【Flink入门(6)】Flink的状态管理(基础)

    时间 2022 06 08 周三 题目 Flink入门 6 Flink的状态管理 基础 本专栏是尚硅谷Flink课程的笔记与思维导图 目录 引言 一 状态 state 概述 二 算子状态 Operator State 2 1 概述 2 2
  • realsense中IMU的简单使用与学习

    IMU的基本原理 如有错误 望批评指正 惯性测量单元 IMU 通常包含加速度计和陀螺仪组成的组合单元 陀螺仪就是内部有一个陀螺 它的轴由于陀螺效应始终与初始方向平行 这样就可以通过与初始方向的偏差计算出旋转方向和角度 这些都是角度变化值 而
  • HashMap底层实现原理

    HashMap HashMap 最早出现在 JDK 1 2中 底层基于散列算法实现 它是一个key value结构的容器 是一个key value的映射容器 key不重复 jdk8中的HashMap基于数组 链表 红黑树实现 不保证键值的顺
  • 树莓派内核编译和下载[1] --代码下载和交叉编译链安装

    版本信息 2022 04 04 raspios bullseye armhf full img 硬件信息 树莓派3B 整个编译和烧录已经完成 陆续更新一部分内容上来 目前网上内容不老旧不合理 所以这里重新更新出来 风险提示 首先 有服务器尽
  • java通用二维码生成工具封装

    该工具类使用google zxing实现二维码生成 可生成通用二维码和带中心图标的二维码 import java awt BasicStroke import java awt Color import java awt Graphics2
  • C语言详解系列——指针与结构体

    文章目录 指针是什么 指针变量的大小 指针与指针类型 野指针 指针运算 指针加减整数 指针减指针 指针的关系运算 指针与数组 二级指针 指针数组 结构体 结构体的声明 结构体变量的定义和初始化 结构体成员的访问 结构体传参 指针是什么 1
  • 谈一谈冷门的C语言爬虫

    目录 C语言写爬虫是可行的 C语言爬虫不受待见 C语言爬虫有哪些可用的库和工具 C语言爬虫示例 总结 在当今的编程世界中 C语言相比于一些主流编程语言如Python JavaScript等 使用范围相对较窄 然而 尽管C语言在爬虫领域的应用
  • centos系统应用日志文件被删,空间无法释放怎么办?

    前言 工作中经常遇到Linux系统磁盘空间不足 但是删除后较大的日志文件后 发现磁盘空间仍没有被释放 有点摸不着头脑 今天博主带大家解决这个问题 思路 1 工作发现磁盘空间不足 2 找到占用磁盘空间较大的文件进行删除 3 删除文件后 查看磁
  • 矩阵卷积运算过程讲解

    写了那么久的博客 始于Python爬虫 目前专于Java学习 终于有了属于自己的小窝 欢迎各位访问我的个人网站 未来我们一起交流进步 在爬虫处理验证码的过程中接触到矩阵卷积运算 关于该类运算 记录一下自己的心得 理论知识 在讲述卷积过程前
  • windows 串口中断编程_51单片机的中断及其使用方法

    51单片机采用中断方式的串口通信过程及程序分析 所谓中断方式 就是串口收 发标志位出发中断后 在中断中执行既定操作 可通过函数调用来实现 接收数据时 等待中断 gt 然后在中断中接收数据 发送数据时 发送数据 gt 等待中断 gt 然后在中
  • 3-linux集群搭建-Hive

    1 导入包并配置环境变量 导入需要的包 如hive mysql等 解压上传的包到指定文件 tar zxvf apache hive 2 0 0 bin tar gz C opt software 然后进入文件夹下改名 mv apache h
  • Springboot日志系统工作原理

    通过日志信息查找日志框架 当我们启动一个springboot项目时 我们会在控制台看到很多日志信息 如下图所示 那这些日志信息究竟是怎么打印出来的呢 就让我们一起来看看吧 2020 10 13 22 17 41 010 INFO 4569
  • three.js学习之环境贴图

    设置cube纹理加载器 设置cube纹理加载器 const cubeTextureLoader new THREE CubeTextureLoader const envMapTexture cubeTextureLoader load s
  • DS18B20_单总线协议

    H文件 ifndef ONEWIRE H define ONEWIRE H include STC15F2K60S2 H include
  • 腾讯员工人均年薪84.7万,再次冲上热搜

    腾讯2020年员工平均月薪6 76万元 2021年人均月薪7 06万元 消息一出立马登上热搜 由财经网科技刚已发出两分钟的时间 转发和赞同人数超过了1万 2021年腾讯营收5601 18亿元 同比去年增长了16 净利润1237 88亿元 同
  • nodejs:非docker下设置NODE_ENV

    参考 使用process env NODE ENV的正确姿势 掘金
  • Linux Server安全配置基线(等保)

    第1章 概述 1 1 目的 本文档规定了所有维护管理的Linux操作系统的主机应当遵循的操作系统安全性设置标准 本文档旨在指导系统管理人员进行Linux操作系统的安全合规性检查和配置 1 2 适用范围 本配置标准的使用者包括 服务器管理员
  • springmvc组件HandleMapping源码-RequestMappingHandlerMapping

    Copyright 2002 2019 the original author or authors Licensed under the Apache License Version 2 0 the License you may not
  • Java中接口的多态

    多态参数 就像我们现实生活中电脑的usb接口 我们既可以接受手机对象 又可以接受相机对象 等等 体现了接口的多态 查看以下代码 接口 package InterfaceM public interface Interface public