多态的概念

2023-11-09

一、多态的概念

多态(Polymorphism )按字面的意思就是“多种状态”,是面向对象的序设计语言最核心的特征。

具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。

多态建立在继承和封装的基础上。

二、多态的分类

  • 编译时多态(设计时多态)∶方法重载。

  • 运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。

三、多态的必要条件如下:

  • 满足继承关系

  • 父类引用指向子类引用

注意:

1、父类引用指向子类实例时,可以调用子类重写父类的方法以及直接继承父类的方法,无法调用子类特有的方法。

2、静态static方法属于特殊情况,静态方法只能继承,不能重写。调用的时候用谁的引用,则调用谁的版本。

四、多态中的向上类型转型和向下类型转型

向上类型转换(Upcast)将子类型转换为父类型:自动转换

  • 对于向上的类型转换,不需要显示指定,即不需要加上前面的小括号和父类类型名。

向下类型转换(Downcast )将父类型转换为子类型:强制转换

  • 父类型的引用必须指向转型的子类的对象,即指向谁才能转换成谁。不然运行的时候会抛出异常

instanceof运算符

用来解决引用对象的类型,避免类型转换的安全性问题,提高代码的强壮性。instanceof 运算符用来判断对象是否可满足某个特定类型实例特征。返回值为true/false。一般用于 if 语句中。

如果左边对象是右边类的实例则返回 true,否则返回 false。

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

多态的概念 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • blender基础笔记

    1 下载与安装 官网下载 官网下载 setam下载 steam下载 个人推荐这个 方便 修改语言 左上角 edit preferences Interface Transtation Langlish 疲了 看图吧 懒得写了 2 基础操作
  • 源码看CoordinatorLayout.Behavior原理

    http blog csdn net qibin0506 article details 50377592 在上一篇博客CoordinatorLayout高级用法 自定义Behavior中 我们介绍了如何去自定义一个CoordinatorL
  • Java中变量的作用域详解

    作用域定义 字面解释 scope 域即一定范围内的较大的地方 顾名思义就是在一定的范围内起作用 大白话解释 父母在家的时候能控制你的玩与学习 出了家门说了也白说 老师在校的时候能够管理你的行为 出了学校你都想管管他 这就是说 不管什么样的指
  • 单表数据量达多少时才建议分库分表

    1 阿里巴巴开发手册建议是 推荐 单表行数超过500万行或者单表容量超过2GB 才推荐进行分库分表 说明 如果预计三年后的数据量根本达不到这个级别 请不要在创建表时就分库分表 2 实际情况还要根据机器的配置视情况而定 3 阿里巴巴开发手册下
  • oracle生成UUID

    oracle生成UUID uuid Universally Unique Identifier 全局唯一标识符 是指在一台机器上生成的数字 它保证对在同一时空中的所有机器都是唯一的 按照开放软件基金会 OSF 制定的标准计算 用到了以太网卡
  • leetcode题解:最长公共前缀

    leetcode题解 最长公共前缀 题目描述 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 flower flow flight 输出 fl 示例 2 输入 dog racecar car
  • [Docker]Elasticsearch启动报错:Format version is not supported

    如果之前安装过Elasticsearch 安装新的Elasticsearch之前需要清空宿主机器对应的挂载目录下的文件数据
  • 打百万拳,走万里路。

    自我介绍 CSDN的大家你们好啊 我是一名大一的学生 与CSDN的相识还要从大一一次次查找知识点开始 当时由于刚接触编程 做什么都一头雾水而又不想去问老师那些简单的知识 于是自己在网上查找 就发现了CSDN这个大学生聚集地 由于很多都是和我
  • Python单重循环练习题

    第一次学python 求大佬指正 1 有1020个西瓜 第一天卖掉总数的一半后又多卖出两个 以后每天卖剩下的一半多两个 问几天以后能卖完 8天后能卖完 sum 1020 day 0 while sum gt 0 day 1 sum sum
  • 解决tomcat 启动超过45秒时间限制

    当在eclipse运行一个javaweb项目时 出现了如下图片中的问题 解决方法 1在如下页面中找到Servers 找不到的话可以通过Window gt gt Show View放到下方 2 双击Servers进到如下页面 3 打开箭头所指
  • C++: read SQL server data using System::Data::SqlClient;

    stdafx h stdafx h include file for standard system include files or project specific include files that are used frequen
  • 『学Vue2+Vue3』自定义指令、插槽、路由入门

    day05 一 学习目标 1 自定义指令 基本语法 全局 局部注册 指令的值 v loading的指令封装 2 插槽 默认插槽 具名插槽 作用域插槽 3 综合案例 商品列表 MyTag组件封装 MyTable组件封装 4 路由入门 单页应用
  • 20个最炫HTML5,jQuery和CSS3下拉菜单制作教程(附示例/源码)

    3 Level Navigation Menu 三级导航菜单 独具特色的导航菜单 包含CSS3渐变 多个子菜单和jQuery动画 CSS3 Minimalistic Navigation Menu 一个简单的CSS3动画导航菜单 SLIDE
  • python之logging模块详解

    python之 logging 模块 文章目录 python之 logging 模块 一 日志关概念 日志的作用 日志的等级 3 日志字段信息与日志格式 4 日志功能的实现 二 logging 模块介绍 什么是logging模块 loggi
  • Linux服务器启动tomcat的三种方式

    直接进入主题 首先cd进入tomcat的bin文件夹下 然后可以尝试以下三种启动方式 第一种 当前会话启动 startup sh 效果 然后tomcat就在后台启动了 我们还可以在当前会话中继续输入其它指令 比如 ps ef grep to
  • Source Insight 自动补全 C 关键字、keil 标准库关键字

    一开始遇到该问题疯狂 baidu bing 相关的 blog 寥寥无几 而且是差不多十年前的 blog 主要原因 Source Insight 默认不包含 C 库文件 keil 标准库 导致编辑代码时找不到 C 库的相关宏 变量类型 函数等
  • [1082]IDEA配置tomcat时出现的问题及解决(HTTP状态404-未找到)

    文章目录 问题1 没有新建环境变量 问题2 tomcat设置depolyment有误 问题1 没有新建环境变量 解决 在系统环境变量中添加变量CATALINA BASE和CATALINA BASE 两个变量的值都是tomcat的安装路径 如
  • 【Java SE】基本数据类型

    大家好 我是保护小周 本期为大家带来的是 Java的基本数据类型 内容会与C语言的基本数据类型进行基本的比较 数据类型提示 整型提升 以及简单了解 String 类型 进一步感受Java 的安全性 C语言混不下去了 面向对象的编程太爽了 目
  • Hyperledger Fabric 安装环境配置答疑(1)

    目录 1 Hyperledger Fabric只支持Ubuntu系统吗 2 cURL是什么 有什么作用 3 为什么要安装Docker及docker compose 4 能否不使用Golang而换作其他语言环境 5 一定要安装Node与npm
  • 多态的概念

    一 多态的概念 多态 Polymorphism 按字面的意思就是 多种状态 是面向对象的序设计语言最核心的特征 具体点就是去完成某个行为 当不同的对象去完成时会产生出不同的状态 多态建立在继承和封装的基础上 二 多态的分类 编译时多态 设计