【精选】java继承进阶,子类继承父类(内存图、内存分析工具)

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

目录

前言

一、内存图

1、构造方法 继承(不管什么修饰符,子类都不能继承)

2、成员变量 继承(子类都可以继承)

继承的内存图:

3、成员方法 继承(虚方法表中可以继承)

内存分析工具


前言

  • 误区1:父类私有的东西,子类就无法继承
  • 误区2:父类中非私有成员,就被子类继承下来了

一、内存图

private 表示私有
public 表示非私有

1、构造方法 继承(不管什么修饰符,子类都不能继承)

下面代码中,创建的Z2对象,就会因为没有继承父类,产生报错

package demon1;public class Test {public static void main(String[] args) {//利用空参构造创建子类对象Zi z1 = new Zi();//利用带参构造创建子类对象//Zi z2 = new Zi("zhangsan",23);}
}class Fu{String name;int age;public Fu(){}public Fu(String name,int age){this.name = name;this.age = age;}
}class Zi extends Fu{//如果一个类中没有构造方法,虚拟机会自动的给你添加一个默认的空参构造}

2、成员变量 继承(子类都可以继承)

继承的内存图:
  • name和age因为被private修饰,所以不能被子类直接调用

3、成员方法 继承(虚方法表中可以继承)

  • 只有父类中的虚方法才能被子类继承

  • fushow2是private修饰的,所以不能传到z1中的虚方法表中

内存分析工具

import java.io.IOException;public class Test {public static void main(String[] args) throws IOException {/* Zi z = new Zi();z.fuShow1();*///把对象的地址值z以16进制的形式打在控制台上//System.out.println(Long.toHexString(VM.current().addressOf(z)));//因为内存分析工具需要程序不停止// Scanner sc = new Scanner(System.in);//sc.next();}
}class Fu {private int a = 0x111;int b = 0x222;public  void fuShow1() {System.out.println("public --- FuShow");}private void fuShow2() {System.out.println("private --- FuShow");}
}class Zi extends Fu {int c = 0x333;public void ziShow() {System.out.println("public --- ZiShow");}
}
  • jdk自带

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

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

相关文章

js中this对象的理解(深度解析)

文章目录 一、定义二、绑定规则默认绑定隐式绑定new绑定显示修改 三、箭头函数四、优先级隐式绑定 VS 显式绑定new绑定 VS 隐式绑定new绑定 VS 显式绑定 参考文献 一、定义 函数的 this 关键字在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模…

大路灯和台灯的区别是什么?五款好用大路灯推荐

大路灯,简单点说就是一台保护眼睛的台灯,靠着优质的LED光源和和专业的黑科技技术实现传统台灯达不到的健康舒适照明,满足了日常读写,加班人群,小说爱好者,绘画师等等这些用户的照明需要,正因如此…

Prometheus部署监控报警

在容器环境中配置安装Prometheus部署企业微信容器报警Grafana展示 下载Prometheus (监控Server端) [rootPrometheus-Grafana prometheus]# mkdir /prometheus [rootPrometheus-Grafana prometheus]# docker run -d --name test -P prom/prometheus [ro…

机器学习数据预处理方法(数据重编码)

文章目录 [TOC]基于Kaggle电信用户流失案例数据(可在官网进行下载)一、离散字段的数据重编码1.OrdinalEncoder自然数排序2.OneHotEncoder独热编码3.ColumnTransformer转化流水线 二、连续字段的特征变换1.标准化(Standardization)…

UE4运用C++和框架开发坦克大战教程笔记(十七)(第51~54集)

UE4运用C和框架开发坦克大战教程笔记(十七)(第51~54集) 51. UI 框架介绍UE4 使用 UI 所面临的问题以及解决思路关于即将编写的 UI 框架的思维导图 52. 管理类与面板类53. 预加载与直接加载54. UI 首次进入界面 51. UI 框架介绍 U…

算法每日一题: 使用循环数组所有元素相等的最少秒数 | 哈希

大家好,我是星恒,今天给大家带来的是一道需要感觉规律的题目,只要读懂题目中的规律,就可以做出来了 这道题用到了哈希,还有一个关键点比较类似循环队列 题目:leetcode 2808 给你一个下标从 0 开始长度为 n…

学历提升答案怎么查找? #微信#学习方法#学习方法

在大学生的学习过程中,我们经常会遇到各种难题和疑惑。有时候,我们可能会花费大量的时间和精力去寻找答案,但结果却并不尽如人意。为了帮助大家更好地解决这个问题,今天我要向大家介绍几款备受大学生欢迎的搜题软件,它…

图数据库(neo4j)在工业控制中的应用

最近看到国外发表的一篇文章,提到将OPC UA 模型映射到neo4j图模型数据库中,通过GraphQL 访问效率很高,顿时感觉自己眼睛一亮,这是一个好主意。 图模型 事物的模型中,除了它自身的某些特征之外,还包括它与其…

C# 信号量(Semaphore)详细使用案例

文章目录 简介信号量的工作原理使用场景使用示例其他使用实例1. 数据库连接池管理2. 文件读写同步3. 生产者消费者问题4. 打印任务队列同步5. Web服务器并发请求限制 简介 在C#中,信号量(Semaphore)是.NET框架提供的一个同步类,位…

Leetcode—1068. 产品销售分析 I【简单】

2024每日刷题(112) Leetcode—1068. 产品销售分析 I MySQL实现代码 # Write your MySQL query statement below SELECT Product.product_name,Sales.year,Sales.price FROM Sales INNER JOIN Product USING (product_id);运行结果 之后我会持续更新&am…

【stm32】hal库学习笔记-ADC模数转换(超详细!)

【stm32】hal库学习笔记-ADC模数转换(超详细!) 本篇章介绍了ADC实现电压检测的三种方式 ADC原理及选型 ADC将连续的模拟电压信号转换为二进制的数字信号 选型参数 速度(采样频率) 功耗 精度 转换原理 ADC hal库驱…

代码审计-CVE-2023-6654-PHPEMS-加密-解密分析

路由: 入口方法: 鉴权分析: 由此可以得出 鉴权是由session类负责获取参数后,由各个类的魔术方法负责:(在此还有一个方法 全局搜索登录关键词) 1、断点分析: 寻找鉴权点分析&#…