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

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()主动触发垃圾回收机制

相关文章:

java学习(多态)

一、多态 含义:方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础上的。 多态的具体体现: 1)方法的多态 (例如重写和重载) 2)对象的多态 多态注意事项&#xff1…...

[UI5 常用控件] 07.SplitApp,SplitContainer

文章目录 前言1. SplitApp1.1 组件结构1.2 Demo1.3 mode属性 2. SplitContainer 前言 本章节记录常用控件SplitApp,SplitContainer。主要功能是在左侧显示Master页面,右侧显示Detail页面。 Master页面和Detail页面可以由多个Page组成,并支持…...

MyBatisPlus之分页查询及Service接口运用

一、分页查询 1.1 基本分页查询 配置分页查询拦截器 package com.fox.mp.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springfra…...

对象存储minio

参考Linux搭建免费开源对象存储 创建一个data目录 --address和--console-address是MinIO服务器启动命令中的两个参数,它们具有以下区别: --address参数:用于指定MinIO服务器监听的S3 API访问地址。S3 API是用于与MinIO进行对象存储操作的…...

大模型学习笔记二:prompt工程

文章目录 一、经典AI女友Prompt二、prompt怎么做?1)注重格式:2)prompt经典构成3)简单prompt的python询问代码4)python实现订阅手机流量套餐的NLU5)优化一:加入垂直领域推荐6&#xf…...

MATLAB实现LSTM时间序列预测

LSTM模型可以在一定程度上学习和预测非平稳的时间序列,其具有强大的记忆和非线性建模能力,可以捕捉到时间序列中的复杂模式和趋势[4]。在这种情况下,LSTM模型可能会自动学习到时间序列的非平稳性,并在预测中进行适当的调整。其作为…...

Kubernetes CNI Calico:Route Reflector 模式(RR) calico IPIP切换RR网络模式

1. 概述 Calico 路由反射模式是一种 BGP 互联方案,用于解决大规模网络中路由信息的分发和同步问题。在 Calico 的路由反射模式中,路由反射器(Route Reflectors)被用来集中管理路由信息,以减少网络中的路由信息数量和减小路由信息的分发规模。 在 Calico 的路由反射模式中…...

探索Gin框架:Golang Gin框架请求参数的获取

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 我们在专栏的前面几篇文章内讲解了Gin框架的路由配置,服务启动等内容。 专栏地址&…...

极值图论基础

目录 一,普通子图禁图 二,Turan问题 三,Turan定理、Turan图 1,Turan定理 2,Turan图 四,以完全二部图为禁图的Turan问题 1,最大边数的上界 2,最大边数的下界 五,…...

word导出链接

java 使用 POI 操作 XWPFDocumen 创建和读取 Office Word 文档基础篇 https://www.cnblogs.com/mh-study/p/9747945.html word标签解析文档 http://www.datypic.com/sc/ooxml/e-w_tbl-1.html...

(delphi11最新学习资料) Object Pascal 学习笔记---第4章第2.5节(重载和模糊调用)

4.2.5 重载和模糊调用 ​ 当调用一个重载的函数时,编译器通常会找到匹配的版本并正确工作,或者如果没有任何重载版本具有正确匹配的参数(正如我们刚刚看到的),则会报出错误。 ​ 但还有第三种情况:假设编…...

ElementUI Data:Table 表格

ElementUI安装与使用指南 Table 表格 点击下载learnelementuispringboot项目源码 效果图 el-table.vue&#xff08;Table表格&#xff09;页面效果图 项目里el-table.vue代码 <script> export default {name: el_table,data() {return {tableData: …...

11.2 OpenGL可编程顶点处理:细分着色器

细分 Tessellation Tessellation&#xff08;细分&#xff09;是计算机图形学中的一种技术&#xff0c;用于在渲染过程中提高模型表面的几何细节。它通过在原始图元&#xff08;如三角形、四边形或补丁&#xff09;之间插入新的顶点和边&#xff0c;对图元进行细化分割&#x…...

微软正在偷走你的浏览记录,Edge浏览器偷疯了

虽然现在 Edge 浏览器相当强大&#xff0c;甚至在某种程度上更符合中国用户的使用体验&#xff1b;但最近新的Edge浏览器推出后一直在使用的用户应该有感受到&#xff0c;原本的冰清玉洁的转校生慢慢小鸡脚藏不住了&#xff0c;广告越来越多&#xff0c;越来越流氓了。 电脑之前…...

什么是数据库软删除,什么场景下要用软删除?(go GORM硬删除)

文章目录 什么是数据库软删除&#xff0c;什么场景下要用软删除&#xff1f;go GORM硬删除什么是数据库软删除什么场景下要用软删除 什么是数据库软删除&#xff0c;什么场景下要用软删除&#xff1f; go GORM硬删除 使用的是 GORM&#xff0c;默认启用了软删除功能&#xff…...

计算机设计大赛 深度学习+python+opencv实现动物识别 - 图像识别

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 inception_v3网络5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…...

我主编的电子技术实验手册(02)——仪表与电源

本专栏是笔者主编教材&#xff08;图0所示&#xff09;的电子版&#xff0c;依托简易的元器件和仪表安排了30多个实验&#xff0c;主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】&#xff0c;精心设计的【实验步骤】&#xff0c;全面丰富的【思考习…...

C语言----内存函数

内存函数主要用于动态分配和管理内存&#xff0c;它直接从指针的方位上进行操作&#xff0c;可以实现字节单位的操作。 其包含的头文件都是&#xff1a;string.h memcpy copy block of memory的缩写----拷贝内存块 格式&#xff1a; void *memcpy(void *dest, const void …...

【力扣】快乐数,哈希集合 + 快慢指针 + 数学

快乐数原题地址 方法一&#xff1a;哈希集合 定义函数 getNext(n) &#xff0c;返回 n 的所有位的平方和。一直执行 ngetNext(n) &#xff0c;最终只有 2 种可能&#xff1a; n 停留在 1 。无限循环且不为 1 。 证明&#xff1a;情况 1 是存在的&#xff0c;如力扣的示例一…...

c实现顺序表

目录 c语言实现顺序表 完整代码实现 c语言实现顺序表 顺序表的结构定义&#xff1a; typedef struct vector {int size; // 顺序表的容量int count; // 顺序表现在存储了多少个数据int *data; // 指针指向连续的整型存储空间 } vector;顺序表的结构操作&#xff1a; 1、初始…...

别再死记硬背base64了!深入浅出聊聊CTF中那些‘魔改’编码的识别与对抗思路

CTF逆向工程中的编码魔法&#xff1a;从Base64变异到通用对抗策略 在网络安全竞赛的战场上&#xff0c;编码就像是一把双刃剑——它既是保护信息的盾牌&#xff0c;也是隐藏线索的迷雾。对于CTF逆向选手而言&#xff0c;面对各种"魔改"编码就像是在解谜题时突然发现规…...

影刀RPA里藏了个Python?手把手教你用它管理第三方包和写数据处理脚本

影刀RPA中的Python开发实战&#xff1a;从包管理到数据处理脚本集成 在自动化流程开发领域&#xff0c;影刀RPA正逐渐成为连接低代码操作与专业编程的桥梁。对于已经掌握Python基础但希望提升自动化效率的开发者而言&#xff0c;影刀RPA提供的Python集成能力堪称效率倍增器。本…...

DocQuery最佳实践:企业文档自动化处理的10个技巧

DocQuery最佳实践&#xff1a;企业文档自动化处理的10个技巧 【免费下载链接】docquery An easy way to extract information from documents 项目地址: https://gitcode.com/gh_mirrors/do/docquery DocQuery是一款强大的文档信息提取工具&#xff0c;能轻松分析半结构…...

告别机械音!用‘小蜗语音工具1.9’制作有声小说和视频字幕的保姆级教程

告别机械音&#xff01;用‘小蜗语音工具1.9’制作有声小说和视频字幕的保姆级教程 在内容创作爆炸的时代&#xff0c;有声小说和视频字幕已成为吸引用户注意力的关键。然而&#xff0c;传统语音合成工具常因生硬的机械音、单调的语调让作品失去灵魂。小蜗语音工具1.9的多角色对…...

从Harness走向Coordination,openJiuwen社区发布JiuwenSwarm,引领多智能体协作新范式

刚刚&#xff0c;华为支持的开源 AI Agent 平台社区 openJiuwen 发布并开源了 JiuwenSwarm。 这是一个面向多智能体协作的蜂群智能体。让多个 AI 智能体像蜂群一样高效协作、自主演进&#xff0c;正式按下 "群体智能" 的加速键&#xff0c;开启 AI 时代的 "养蜂…...

RabbitMQ连接报错ACCESS_REFUSED?别慌,手把手教你排查用户权限与vhost配置

RabbitMQ连接报错ACCESS_REFUSED&#xff1f;三步精准定位权限与vhost问题 深夜的报警短信总是格外刺眼——"RabbitMQ连接失败&#xff1a;ACCESS_REFUSED"。这个看似简单的权限错误背后&#xff0c;往往隐藏着vhost配置、用户权限和客户端参数的三重陷阱。本文将带您…...

避坑指南:STM32驱动LD3320语音模块,SPI通信和中断配置的那些‘坑’我都替你踩过了

STM32与LD3320语音模块深度避坑实战&#xff1a;从SPI配置到中断优化的完整指南 当第一次拿到LD3320语音识别模块时&#xff0c;大多数开发者都会为它的"即插即用"特性感到兴奋——理论上只需要简单的SPI连接和基础配置就能实现语音识别功能。然而在实际项目中&#…...

告别文档踩坑:手把手教你用OkHttp和Gson解析OneNET API返回的复杂JSON数据

告别文档踩坑&#xff1a;手把手教你用OkHttp和Gson解析OneNET API返回的复杂JSON数据 在Android开发中&#xff0c;处理网络请求和JSON数据解析是每个开发者都必须掌握的基本技能。然而&#xff0c;当面对像OneNET这样的物联网平台返回的复杂嵌套JSON结构时&#xff0c;即使是…...

Tina Linux音频开发指南:从ALSA框架到实战调试

1. 项目概述&#xff1a;为什么我们需要一份音频开发指南&#xff1f;在嵌入式Linux的世界里&#xff0c;音频开发常常被开发者们戏称为“玄学”。我见过太多项目&#xff0c;硬件电路设计得漂漂亮亮&#xff0c;系统也跑得飞快&#xff0c;但一到音频部分就卡壳——要么是播放…...

告别阿里云物联网平台:用免费公共MQTT服务器玩转ESP32远程监控

告别商业云平台&#xff1a;用免费公共MQTT服务器实现ESP32远程监控 在物联网项目开发中&#xff0c;远程数据传输是核心需求之一。许多开发者习惯性选择阿里云、腾讯云等商业物联网平台&#xff0c;却常常被复杂的配置流程、高昂的服务费用所困扰。实际上&#xff0c;对于个人…...