--- JAVA 多态 ---

news/2024/6/24 19:20:55

多态,顾名思义就时有多种形态,那咋样才嫩共有多种形态呢,再java中就是用不同的对象去调用同一个方法,产生了不同的结果。

看这段代码,我调用的是同一个方法,且只是传入的对象的不同,但是产生了不同的结果,这就是多态

多态的执行条件

必须要子类继承了父类

 子类要对父类的方法进行重写,要发生向上转型

同过父类调用子类的方法

那什么是重写呢

再子类的父类中有相同的方法,且该方法的放回值,参数,名字相同,且子类的访问权限大于等于父类在调用父类的该方法时,子类的方法会重写父类的方法啊,所以当调用的父类的方法,实际执行的是子类的方法 只有将她的访问权限设置为public 返回类型,参数和她一样才可以成功运行

再发生向上转型后,调用父类的发重写的方法,最终产生不同的效果把这整个过程叫做动态绑定,再编译时不能确定方法的行为,只有再程序运行后才知道,也叫做晚绑定

当然也有静态绑定,这是在用户传参时就能确定调用的是哪个方法,典型就是方法重载

向下转型

在发生向上转型后,我们如果要调用子类的成员是不行的,只能调用父类有的成员

那如果要调用子类的方法,那么就要用到向下转型了

因为向下转型是从小变到大的转换,是有风险,在转换是需要判断能否进行

这里用到一个关键字,instanceof ,用来确认lei这个类否是后面hh的变量,若是表达式为true 否者为false,只有当lei这个类是后面hh的父类是,才能使用向下转型,将lei强转为hh,然后使用一个hh类型的变量tmp去接收,这样就可以同过tmp去调用子类的成员了

END 加油哦


http://lihuaxi.xjx100.cn/news/2194794.html

相关文章

win10文件夹.git或者文件被隐藏的开启姿势

按需排查,有的文件隐藏是好事 基本操作更多操作某些系统设置的隐藏操作在idea或者pycharm项目中显示.git文件夹 基本操作 文件夹-> 查看 -> 隐藏的项目点亮 更多操作 文件夹 -> 查看 -> 选项 -> 查看 -> 高级设置 -> 文件和文件夹 -> 隐…

pycharm FuncAnimation画动态图不显示, 以及画图

网上的一些方法给出了解决措施,如:https://blog.csdn.net/qq_41725313/article/details/122048864?spm1001.2101.3001.6650.2&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogOpenSearchComplete%7ERate-2-122048864-blog-139…

win10下,python3.7安装xlrd和xlwt

win10下,执行import xlwt,结果报错 No module named xlwt。 原因:使用的python没有安装xlwt包。 解决方法: 1)打开一个命令窗口,执行:where python,可以看到使用的python路径及版…

如何通俗易懂地理解大模型参数?

大型语言模型 (LLM) 的大小是通过参数数量来衡量的。举几个典型例子,GPT-3 有 1750 亿个参数,1750亿也可称为175B(1B 10亿),Meta最新开源的Llama3 参数数量在 80 亿到 700 亿之间,智谱公司最新开源的GLM4-…

避免使用for循环操作高维数组:numpy.apply_along_axis用法

文章目录 场景实际操作编写相关函数np.apply_along_axis 场景 设想我有一列高维向量,读取之后的数据都是字符串变量,我需要把这些字符串数据转换为复数之后求绝对值 实际操作 在使用pd.read_csv()读取数据之后,将这一列数据转换为numpy数…

常用Linux命令的具体使用示例

文件操作类: ls -l: 列出当前目录下所有文件和目录的详细信息。cd /home: 切换到/home目录。pwd: 显示当前工作目录的完整路径。cp source.txt destination.txt: 将source.txt文件复制到destination.txt。mv oldname.txt newname.txt: 将文件oldname.txt重命名为ne…

【WRF理论第二期】运行模型的基础知识

WRF理论第二期:运行模型的基础知识 1 Basics for Running the Model2 Geogrid程序2.1 Geogrid2.2 Terrestrial Input Data 3 Ungrid程序3.1 Ungrid3.2 Intermediate Files3.3 Required Fields 4 Metgrid程序参考 官方介绍-Basics for Running the Model 本博客主要…

RAG检索增强生成(2)-向量数据库

向量数据库专门用于存储和处理向量数据。它的能够高效地存储和检索向量数据,使开发者能够进行高级的相似性搜索和分析。 在大模型时代,文本、图像、音频和其他非结构化数据,通常被嵌入到一定维度的向量空间,使用向量数据库能够高效…