当前位置: 首页 > news >正文

java基础学习 day44(多态的优点和劣势)

1. 多态的优势

  • 在多态形式下,右边对象可以实现解耦合(即之后的代码与右边的子类对象不绑定,在更改子类对象后,之后的代码仍可以使用),便于扩展和维护
  • 在定义方法的时候,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性和便利

2. 多态的劣势
不能使用子类的特有功能

3. 引用数据类型的类型转换,有几种方式?
自动类型转换,强转类型转换

Person p = new Student( ) ; //自动类型转换
Student s = (Student) p ; //强转类型转换

4. 强转类型转换能解决什么问题?

  • 可以转换成真实指向的子类类型,从而调用子类独有的功能
  • 转换类型与真实指向的对象类型不一致会报错
  • 转换的时候可以用instanceof关键字进行判断
  • 例如:调用父类没有而子类有的方法时会报错
  • 原因:当调用成员方法时,编译看左边,运行看右边。在编译时会先检查左边的父类有没有这个方法,如果没有直接报错
  • 解决方案:将父类变量强制转换为他指向的子类对象类型
  • 细节:转换的时候不能瞎转,如果转成其他类的类型,就会报错(类型转换错误)
    在这里插入图片描述
  • 判断:可以用instanceof来判断变量a是否指向Dog类型,格式为 a instanceof Dog,若是,结果为true,若不是,结果为false。
    在这里插入图片描述
  • 新特性,JDK14以后,判断与强转可以合并起来写,如:a instanceof Dog d,先判断a是否指向Dog类型,如果是,则强转成Dog类型,转换之后变量名为d,结果为true,如果不是,则不强转,结果直接为flase

相关文章:

java基础学习 day44(多态的优点和劣势)

1. 多态的优势 在多态形式下,右边对象可以实现解耦合(即之后的代码与右边的子类对象不绑定,在更改子类对象后,之后的代码仍可以使用),便于扩展和维护在定义方法的时候,使用父类型作为参数&…...

Guna UI WinForms 2.0.4.4 Crack

Guna.UI2 WinForms is the suite for creating groundbreaking desktop app UI. It is for developers targeting the .NET Windows Forms platform. 50 多个 UI 控件 具有广泛功能的综合组件可帮助您开发任何东西。 无尽的定制 只需拖放即可创建视觉效果命令和体验。 出色的…...

零售航母沃尔玛公布业绩:喜忧参半

2月21日美股盘前,零售巨无霸沃尔玛公布了截至1月的2023财年第四季度业绩报告。财报中不乏可圈可点之处,但是利润迎来六年首降,新财年的利润指引要也比预期低很多,可以说喜忧参半。 一、Q4业绩可圈可点 营收方面:在本…...

Python学习笔记丨while、for、if循环结构基础知识与易错点

Python流程控制 本篇笔记的主要内容是:条件控制和循环控制,包括if语句、while语句、for语句等。 Python条件控制 if (m : 1) > 0: # :是海象运算符,用于在函数内部为变量赋值 print("ok")ok 通过if语句来判断条件是否成立&am…...

【ROS学习笔记1】ROS快速体验输出Hello World

【ROS学习笔记1】ROS快速体验输出Hello World 文章目录【ROS学习笔记1】ROS快速体验输出Hello World1.1 ROS快速体验1.1.1 Hello World快速实现简介1.1.2 Hello World的C实现1.1.3 Hello World的Python实现写在前面,本系列笔记参考的是AutoLabor的教程,具…...

复习git的使用

文章目录复习git的使用基础提交文件查看回退撤销修改分支创建切换tag其他命令HEAD 指针 的理解复习git的使用 最近公司的老旧项目要由svn转到git,git 命令大都忘记了,这里复习总结一下。 基础 查看本地git版本 git --version 查看本地git配置信息 gi…...

pip命令大全 含换源方法

目录 一、命令列表 二、通用选项列表 三、常用操作 1.使用 requirements.txt 安装包 2.生成requirements.txt文件 3.pip升级命令 4.开启向后不兼容的新功能 5.启用已弃用的功能 四、pip换源 1.临时使用pip源方法 2.永久修改方法 一、命令列表 命令说明实例install安…...

数据结构与算法之最短路路径与最短路径和动态规划

If every unfolding we experience takes us further along in life, then, we are truly experiencing what life is offering.如果我们在人生中体验的每一次转变都让我们在生活中走得更远,那么,我们就真正的体验到了生活想让我们体验的东西。Do not tr…...

git 本地新建分支并进行合并

由于新的要求 不允许在线上直接clone下的git分支进行开发,只能本地新建分支再往线上分支合并远程库clone到本地库 git clone 需要下载的git地址注意我下载下来的是dev分支 根据实际情况进行分析git clone https://gitee.com/hello.git本地创建新的分支 git checkout…...

2023年DAMA-CDGA/CDGP数据治理认证选择哪家机构好?

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…...

浅析高速服务区交互一体机设备管理系统的建设与方向

很多高速公路服务区均缺乏现代化的服务思维、理念和手段,信息系统功能薄弱,服务区的自助服务终端存在功能单一、人机交互体验差、设备维护管理成本高、联动效率低、运营难等问题,这不仅无法支撑服务区的精细化服务和智能化管理需求&#xff0…...

分布式面试题

目录 分布式id的生成方案有哪些 雪花算法生成的ID由哪些部分组成 分布式锁在项目中有哪些应用场景? 分布式锁有哪些解决方案 Redis做分布式锁用什么命令 Redis做分布式锁,死锁有哪些情况?如何解决 Redis如何做分布式锁 MySQL如何做分布式锁 什么…...

Prophet 处理时间序列数据

Prophet 处理时间序列数据 flyfish 论文地址 https://peerj.com/preprints/3190/ 官网 https://facebook.github.io/prophet/ 源码地址 https://github.com/facebook/prophet hon import pandas as pd from prophet import Prophet df pd.read_csv(https://raw.githubuse…...

一文搞清楚LoRa网关,LoRa网关全知道

欢迎来到东用知识小课堂下面,今天我们用东用科技的OGC300系列LoRa为例,以简单的方式帮助大家了解一下LoRa相关的小知识一、LoRa网关的基本介绍LoRa是semtech公司创建的低功耗局域网无线标准,低功耗一般很难覆盖远距离,远距离一般功…...

医疗保健和智慧城市服务将引领5G物联网采用

Juniper Research预测,到2026年,全球5G物联网连接将达到1.16亿,而2023年仅为1700万。该公司预测,医疗保健部门和智慧城市服务将在未来三年推动这1100%的增长,到2026年占5G物联网设备的60%以上。5G物联网技术的超低延迟…...

promise静态方法及相关练习

promise的静态方法相对简单,这篇文章做个总结,以便漏补缺总结如下:1. Promise.all/Promise.anyPromise.allSettled/Promise.race都是接受数组,数组里面是promise2.. Promise.all 接收的promise数组只要有一个失败那么整个就是失败…...

【Tips】通过背数据了解业务

学习资料:做了三年数据分析,给你的几点建议 1. 通过背数据了解业务 原文: 总结: 方法:每天早上去到公司第一件事情就是先背一遍最新的各种指标。原理: 数据敏感性就是建立在对数据的了解和熟悉上。业务的…...

设备太分散?如何一站式管理边缘 OS、K8s 和应用?

作者简介 张志龙,SUSE 大中华区资深解决方案架构师,CNCF 官方认证的 CKA&CKAD 工程师,深耕以 Kubernetes 为代表的云原生领域,具备丰富的架构设计、业务容器化改造和项目落地实践经验。 据 Gartner 预测,到 2025 年…...

CF1692D The Clock 题解

CF1692D The Clock 题解题目链接字面描述题面翻译题目描述输入输出题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示代码实现题目 链接 https://www.luogu.com.cn/problem/CF1692D 字面描述 题面翻译 题目描述 从一个24小时制的时间点开始,每隔 xx…...

IDEA 30 个好用天花板技巧,敲代码直接接爽到飞。

IDEA 作为Java开发工具的后起之秀,几乎以碾压之势把其他对手甩在了身后,主要原因还是归功于:好用;虽然有点重,但依旧瑕不掩瑜,内置了非常多的功能,大大提高了日常的开发效率,下面汇总…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Java编程之桥接模式

定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

uniapp 字符包含的相关方法

在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...