java学习(多态)

一、多态

含义:方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础上的。

多态的具体体现:

1)方法的多态 (例如重写和重载)

2)对象的多态

多态注意事项:

1)多态的前提是:两个对象(类)存在继承关系。

2)多态的向上转型 

  1.本质:父类的引用指向了子类的对象

  2.语法:父类类型  引用名=new 子类类型();

  3.特点:编译类型看左边,运行类型看右边。

                可以调用父类中的所有成员(需遵守访问权限)

                不能调用子类中特有成员(在编译阶段,能调用哪些成员,是由编译类型决定的

                最终运行效果看子类的具体实现(即调用方法时,从子类开始查找方法

3)多态的向下转型

  1.语法:子类类型   引用名=(子类类型)父类引用

  2.特点:只能强转父类的引用,不能强转父类的对象。

                要求父类的引用必须指向的是当前目标类型的对象。

                可以调用子类类型中的所有成员。

4)直接调用属性时,属性没有重写之说,属性的值看编译类型。

扩展:instanceOf比较操作符:用于判断对象的类型(此时讨论的是运行类型)是否为某类型或某类型的子类型

语法:引用类型变量(object) instanceof 类(class)

注:instanceof 前面的引用变量编译时的类型要么与后面的类型相同,要么与后面的类型具有父子继承关系

package object;public class temp {public static void main(String[] args) {B b=new B();System.out.println(b instanceof B);//结果为trueSystem.out.println(b instanceof A);//结果我true}
}class A{
}
class B extends A{
}

二、Java的动态绑定机制

三、多态的应用

1)多态数组:数组的定义类型为父类类型,里面保存的实际元素类型为子类类型。 

2)多态参数:方法定义的形参类型为父类类型,实参类型允许为子类类型

四、==和equals的对比

1)==是比较运算符

2)equals: 是Object类中的方法,只能判断引用类型 ,默认判断的地址是否相等,子类中往往重写方法,用于判断内容是否相等。

五、hashCode方法

六、toString方法

七、finalize方法

1.当对象被回收时,系统自动调用该对象的finalize方法。子类可以重写该方法,做一些释放资源的操作

2.什么时候被回收:当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制(并不会马上销毁)来销毁该对象,在销毁该对象前,会先调用finalize方法。

3.垃圾回收机制的调用,是由系统来决定,也可以通过System.gc()主动触发垃圾回收机制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2776878.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【小白开服日记】幻兽帕鲁服务器如何搭建?

玩转幻兽帕鲁服务器,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

2023最新飞机即时通讯系统源码,支持PC、Android、IOS和WEB四端

(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买) 2023最新的飞机即时通讯系统源码已经经过测试,并在PC、Android、IOS和WEB四个平台上运行良好。 当初开始使用时,我们…

arkTS开发鸿蒙OS应用(登录页面实现,连接数据库)

前言 喜欢的朋友可在抖音、小红书、微信公众号、哔哩哔哩搜索“淼学派对”。知乎搜索“编程淼”。 前端架构 Toubu.ets import router from ohos.router Component export struct Header{build(){// 标题部分Row({space:5}){Image($r(app.media.fanhui)).width(20).onClic…

堆排序----C语言数据结构

目录 引言 堆排序的实现**堆的向下调整算法** 对排序的时间复杂度建堆的时间复杂度:排序过程的时间复杂度:总体时间复杂度: 引言 堆排序(Heap Sort)是一种基于比较的排序算法,利用堆的数据结构来实现。它的…

时间序列分类算法 极简设计之ROCKET、MiniRocket详解及python实战

前言 时间序列分类任务也是比较常见的任务,根据分类,来判断时间序列的性质,类别等。 其中rocket算法十分另类,看似用的非常简单且暴力的方式,却拿到了不错的效果,以及拥有非常快的推理和训练速度。 后续还有…

Java并发基础:ArrayBlockingQueue全面解析!

内容摘要 ArrayBlockingQueue类是一个高效、线程安全的队列实现,它基于数组,提供了快速的元素访问,并支持多线程间的同步操作,作为有界队列,它能有效防止内存溢出,并通过阻塞机制平衡生产者和消费者的速度…

[职场] 公安管理学就业方向及前景 #媒体#笔记#笔记

公安管理学就业方向及前景 公安管理学是中国普通高等学校本科专业。本专业文理兼收,学制4年,授予法学学士学位。本专业培养掌握马克思主义基本原理,政治坚定,坚持党和国家的路线、方针、政策,具有良好职业素养、科学素…

K210如何下载程序

一、打开资料包里提供的K-Flash程序烧录软件 二、选择串口 三、选择波特率 四、选择In-Chip,烧录到Flash芯片里面,重新上电还会运行程序 五、如果选择In - Memory,这次可以运行,但下次重新上电就不会保持这次的程序了。 六、选择固…

macOS Sonoma 14.3.1(23D60)发布

系统介绍 黑果魏叔2 月 9 日消息,苹果今日向 Mac 电脑用户推送了 macOS 14.3.1 更新(内部版本号:23D60),本次更新距离上次发布隔了 17 天。 魏叔 查询苹果官方更新日志,macOS Sonoma 14.3.1 修复内容和 …

LeetCode-第28题-找出字符串中第一个匹配项的下标

1.题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 2.样例描述 3.思路描述 可以让字符串 …

【JAVA WEB】盒模型

目录 边框 内边距 基础写法 复合写法 外边距 基础写法 复合写法 块级元素的水平居中 弹性布局 设置行内元素的属性 ,span 每一个HTML元素就相当于是一个矩形的“盒子” 这个盒子由以下这几个部分构成: 1.边框 border 2.内容 content 3.内边…

写后台接口,前后台数据对接(vue+springboot)

一、怎么写接口??? 1.Entity(定义一堆属性之类的) altins>getter和setter方法 2.Controller 3.Service(查询出数据) 调用了一个方法 4.Mapper 5.回到service(返回数据&#x…

2019 年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项任务书(笔记详解)

1. 网络拓扑图 2. IP 地址规划表 3. 设备初始化信息 阶段一 任务 1:网络平台搭建 1、根据网络拓扑图所示,按照 IP 地址参数表,对 DCFW 的名称、各接口IP 地址进行配置。 2、根据网络拓扑图所示,按照 IP 地址参数表,对 DCRS 的名称进行配置,创建 VLAN 并将相应接口划入 …

ChatGPT高效提问—prompt常见用法(续篇七)

ChatGPT高效提问—prompt常见用法(续篇七) 1.1 零样本、单样本和多样本 ​ ChatGPT拥有令人惊叹的功能和能力,允许用户自由向其提问,无须提供任何具体的示例样本,就可以获得精准的回答。这种特性被称为零样本&#x…

【教3妹学编程-算法题】LCP 30. 魔塔游戏

3妹:2哥,干嘛呢,一个人闷闷不乐的,在看什么呢。 2哥 : 这不快过年了嘛, 想回家过年给我的小侄子买个礼物,结果他张口说想要个ps5. 那玩意我都没有,他还想要。我看看网上有什么好的礼物适合他的。…

vscode开发FPGA(0)--windows平台搭建

一、从官网下载安装VScode Download Visual Studio Code - Mac, Linux, Windows 二、安装配置插件 1. 安装Chinese(simplified)中文汉化包 2.安装Verilog-HDL/systemVerilog插件(支持verilog语法) 3.配置CTags Support插件(支持代码跳转) 1)在github下…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Slider组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Slider组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Slider组件 滑动条组件,通常用于快速调节设置值,如音量调…

AcWing 1224 交换瓶子(简单图论)

[题目概述] 有 N 个瓶子,编号 1∼N,放在架子上。 比如有 5 个瓶子: 2 1 3 5 4 要求每次拿起 2 个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的情况,显然&a…

[SAP] ABAP代码程序美化器大小写格式化设置

按照ABAP开发的规范,ABAP源代码里推荐将所有的关键字大写,其余ABAP变量小写 我们可以手动修改上述代码大小写规范的问题,但如果代码量很多的情况下,手动确保这个规范(所有的关键字大写,其余ABAP变量小写)有点费事&…

LabVIEW工业监控系统

LabVIEW工业监控系统 介绍了一个基于LabVIEW软件开发的工业监控系统。系统通过虚拟测控技术和先进的数据处理能力,实现对工业过程的高效监控,提升系统的自动化和智能化水平,从而满足现代工业对高效率、高稳定性和低成本的需求。 随着工业自…