【精选】java初识多态 多态调用成员的特点

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

多态调用成员的特点

代码演示

多态调用成员的内存图解


多态调用成员的特点

  • 变量调用:编译看左边,运行也看左边
  • 方法调用:编译看左边,运行看右边

代码演示

理解:
Animal a = new Dog();
现在用a去调用变量和方法的呀?是的
而a是Animal类型的,所以默认都会从Animal这个类中去找成员变量:在子类的对象中,会把父类的成员变量也继承下的。父:name  子:name
成员方法:如果子类对方法进行了重写,那么在虚方法表中是会把父类的方法进行覆盖的。
package demon7;public class test {public static void main(String[] args) {//创建对象(多态方式)//Fu f = new Zi();Animal a = new Dog();//调用成员变量:编译看左边,运行也看左边//编译看左边:javac编译代码的时候,会看左边的父类中有没有这个变量,如果有,编译成功,如果没有编译失败。//运行也看左边:java运行代码的时候,实际获取的就是左边父类中成员变量的值System.out.println(a.name);//动物//调用成员方法:编译看左边,运行看右边//编译看左边:javac编译代码的时候,会看左边的父类中有没有这个方法,如果有,编译成功,如果没有编译失败。//运行看右边:java运行代码的时候,实际上运行的是子类中的方法。a.show();///Dog --- show方法//理解://Animal a = new Dog();//现在用a去调用变量和方法的呀?是的//而a是Animal类型的,所以默认都会从Animal这个类中去找//成员变量:在子类的对象中,会把父类的成员变量也继承下的。父:name  子:name//成员方法:如果子类对方法进行了重写,那么在虚方法表中是会把父类的方法进行覆盖的。}
}class Animal{String name = "动物";public void show(){System.out.println("Animal --- show方法");}
}class Dog extends Animal{String name = "狗";@Overridepublic void show() {System.out.println("Dog --- show方法");}}class Cat extends Animal{String name = "猫";@Overridepublic void show() {System.out.println("Cat --- show方法");}
}

多态调用成员的内存图解

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis笔记】分布式锁及4种常见实现方法

线程锁 主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如Synchronized、Lock等。 进程锁 控制同…

DBdoctor恭祝大家龙行龘龘,前程朤朤

值此新年之际,DBdoctor恭祝大家龙行龘龘,前程朤朤。尤其是当前还跟我一样奋斗在护航春节一线的战友们,祝愿大家2024年系统又快又稳。 今年是DBdoctor护航春晚的第三年,聚好看作为海信旗下的互联网科技公司,服务着海信…

MySQL-索引(INDEX)

文章目录 1. 索引概述及优劣势2. 索引结构和不同引擎对索引的支持情况2.1 Btree2.2 Hash索引 3. 索引分类4. 索引语法5. 索引在什么情况下会失效?5.1 最左前缀法则5.2 范围查询5.3 索引列运算5.4 头部模糊查询5.5 OR连接条件5.6 字符串不加引号5.7 数据分布影响 6. …

eosio.token 智能合约介绍

一、目的 eosio.token系统合约定义了允许用户为基于EOSIO的区块链创建、发行和管理代币的结构和操作,它演示了一种实现允许创建和管理代币的智能合约的方法。本文详细介绍了eosio.token系统合约并在本地测试链上实际发行了代币进行演示,适用于EOS智能合…

Bee V2.2 分库分表 Sharding+MongoDB ORM 稳定版发布 (更新 Maven)

Hibernate/MyBatis plus Sharding JDBC Jpa Spring data GraphQL App ORM (Android, 鸿蒙) Bee 小巧玲珑!仅 860K, 还不到 1M, 但却是功能强大! V2.2 (2024.1.1・LTS 版) 1.Javabean 实体支持继承 (配置 bee.osql.openEntityCanExtendtrue) 2. 增强批…

移动最小二乘法

移动最小二乘法(Moving Least Square,MLS)主要应用于曲线与曲面拟合,该方法基于紧支撑加权函数(即函数值只在有限大小的封闭域中定义大于零,而在域外则定义为零)和多项式基函数,通过…

已解决io.seata.core.exception.RmTransactionException异常的正确解决方法,亲测有效!!!

已解决io.seata.core.exception.RmTransactionException异常的正确解决方法,亲测有效!!! 文章目录 问题分析 报错原因 解决思路 解决方法 总结 问题分析 io.seata.core.exception.RmTransactionException是在使用Seata进行…

【新书推荐】7.2节 寄存器寻址方式和直接寻址方式

本节内容:寄存器寻址方式的操作数在CPU内部的寄存器中,指令中指定寄存器号。 ■寄存器寻址方式:16位的寄存器操作数可以是AX、BX、CX、DX、SI、DI、SP、BP共计8个16位通用寄存器;8位寄存器操作数可以是AH、AL、BH、BL、CH、CL、D…

echarts 曲线图自定义提示框

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>曲线图</title><!-- 引入 ECharts 库 -->…

猪圈密码.

1.介绍 又称朱高密码、共济会密码、共济会暗号、共济会员密码&#xff0c;是一种以格子为基础的简单替代式密码。即时使用符号&#xff0c;也不影响密码分析&#xff0c;亦可用其他替代式密码。 2.产生背景 这是一种外形古怪的密码&#xff0c;已经传递了几百年。没有人明确…

C++ 设计模式之观察者模式

学习设计模式时&#xff0c;最好的方式是通过实际的例程来加深理解。以下是一个简单的C设计模式的例程&#xff0c;演示了观察者模式&#xff08;Observer Pattern&#xff09;的应用。观察者模式定义了一种一对多的依赖关系&#xff0c;使得当一个对象状态改变时&#xff0c;所…

防疫物资管理新篇章:Java+SpringBoot实战

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【知识整理】技术新人的培养计划

一、培养计划落地实操 1. 概要 新人入职&#xff0c;要给予适当的指导&#xff0c;目标&#xff1a; 1、熟悉当前环境&#xff1a; 生活环境&#xff1a;吃饭、交通、住宿、娱乐 工作环境&#xff1a;使用的工具&#xff0c;Mac、maven、git、idea 等 2、熟悉并掌握工作技…

【C++从0到王者】第四十二站:类型转换

文章目录 一、 C语言中的类型转换1. C语言中的类型转换2.一个常见的坑 二、为什么C需要四种类型转换三、C强制类型转换1.static_cast2.reinterpret_cast3.const_cast4.dynamic_cast 四、RTTI 一、 C语言中的类型转换 1. C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符…

免费软件推荐-开源免费批量离线图文识别(OCR)

近期要批量处理图片转电子化&#xff0c;为了解决这个世纪难题&#xff0c;试了很多软件&#xff08;华为手机自带OCR识别、 PandaOCR、天若OCR、Free OCR&#xff09;等软件&#xff0c;还是选择了这一款&#xff0c;方便简单 一、什么是OCR? 光学字符识别&#xff08;Opt…

大模型学习 一

https://www.bilibili.com/video/BV1Kz4y1x7AK/?spm_id_from333.337.search-card.all.click GPU 计算单元多 并行计算能力强 指数更重要 A100 80G V100 A100 海外 100元/时 单卡 多卡并行&#xff1a; 单机多卡 模型并行 有资源的浪费 反向传播 反向传播&#xff08;B…

C++11新特性(一)

目录 C11简介 统一的列表初始化 变量类型推导 std::initializer_list 声明 auto decltype nullptr STL的一些变化 右值引用 右值引用和左值引用 右值引用适用场景 移动构造和移动语义 对类的影响 可变参数模板 递归函数方式展开参数包 STL容器中的empalce相…

使用Launch4j将jar包转成.exe可执行文件

Launch4j官网:Launch4j - Cross-platform Java executable wrapper 然后点击上面按钮 随便写个文件名

2024-02-08(Flume)

1.Flume 的架构和MQ消息队列有点类似 2.Flume也可以做数据的持久化操作 在Channel部分选择使用File channel组件 3.Flume进行日志文件监控 场景&#xff1a;企业中应用程序部署后会将日志写入到文件中&#xff0c;我们可以使用Flume从各个日志文件将日志收集到日志中心以便…

数据结构(C语言)代码实现(八)——顺序栈实现数值转换行编辑程序括号分配汉诺塔

目录 参考资料 顺序栈的实现 头文件SqStack.h&#xff08;顺序栈函数声明&#xff09; 源文件SqStack.cpp&#xff08;顺序栈函数实现&#xff09; 顺序栈的三个应用 数值转换 行编辑程序 顺序栈的实现测试 栈与递归的实现&#xff08;以汉诺塔为例&#xff09; 参考资…