JAVA 多态 从内存角度分析

2023-10-26

请添加图片描述
设父类对象占内存空间100M,子类对象占内存空间50M
问题:
① 对象转型问题

  • 为什么只有父类变量指向子类对象? 因为父类需要100M,只能指向比自己更大的空间
  • 父类变量指向子类对象时变量情况? a=pa c()=cc() 父类变量实际上指向的是①和②,pc()实际上被隐藏,只能通过super来访问
    ② 重载问题
  • 子类对象child的变量情况? a=ca d=d c()=cc() super.c()=pc() super.a=pa b=b

总结
一个类变量指向的一定是他自己的对象。当指向子类对象时,实际上他是指向子类对象中自己相应的内存空间


补充:
①从更抽象的角度来说,接口也是实现类的父类 可以使用接口指向实现类来实现多态
可以树的角度来理解JAVA的对象

  • Object类是JAVA树的根节点
  • 子类节点总是在父类节点的下面一层。
  • 孩子不能返回父亲节点,即这颗树不是三叉链表

多态? 当前你要使用的是孩子节点,如果有一天你要使用孩子节点的左右兄弟呢?因此最好的方法是保存根(孩子的父亲)通过根来访问孩子,进而达到多态

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA 多态 从内存角度分析 的相关文章

随机推荐

  • 怎样才能跳过实名认证_和平精英qq怎么跳过实名认证!老司机告诉你仅需5步

    qq怎么跳过实名认证玩家是否知晓 虽然来说跳过实名认证对于手游来说并没有什么帮助 但是这个方式方法玩家还是需要知道的 这样能够帮助玩家轻松的做到某些事情 而这里就是样式玩家如何进行和平精英实名认证怎么跳过 其实在老司机手机仅需5步即可 和平
  • gtx1660是什么级别的_显卡天梯图秒懂GTX1660Ti性能 GTX1660Ti相当于什么显卡

    GTX1660Ti是NVIDIA二月份刚发布的一款显卡 从命名上看 它是历代英伟达显卡中 最 6 的显卡 名称中包含了3个6字 作为上一代甜品级GTX1060的继任者 而颇受关注 那么GTX1660Ti相当于什么显卡 其大致性能是什么水平呢
  • 色值的封装方法以及RGB和RGBA的区别

    取色值相关的方法 define RGB r g b UIColor colorWithRed r 255 f green g 255 f blue b 255 f alpha 1 f define RGBA r g b a UIColor
  • 项目搭建之代码规范化解决方案

    代码规范化解决方案Eslint Prettier Eslint 是一个插件化的 javascript 代码检测工具 用于代码格式检测 不符合Eslint规则的代码 会被检测到发出警告 报错 通过 eslintrc js 文件可以进行自定义的
  • 约瑟夫环:循环链表,数组

    约瑟夫环 1 循环链表 设计思路 2 顺序表 数组实现 设计思路 站成一圈 从1报数 报数为m则出列 求出列序列 1 循环链表 设计思路 用循环链表实现逻辑结构 mermaid svg Ejge7i4yvNzv6PZ2 label font
  • Python opencv学习-5创建带调色板的画板

    test5 带调色板的画板 可改变线的粗细 颜色 缺点 其实是不断画圆 鼠标动作快了能看出执行间隔 import cv2 import numpy as np drawing False mouse callback function de
  • MATLAB回归分析--------2019/8/2

    回归分析 多元线性回归 Matlab 统计工具箱用命令 regress 实现多元线性回归 用的方法是最小二乘法 用 法是 b r e g r e
  • linux中摄像头旋转90度,ok335xD 如何将屏幕显示转90度在linux下,竖屏变横屏。

    我在内核里发现这样几个文件 不知是否能用的到 在drivers video 下 Kconfig and 8 15 or 16 bpp color 90 degrees clockwise display rotation for xilin
  • linux 日志查看

    Linux 查看日志相关命令总结 Linux日志筛选命令 常用Linux日志查看命令 grep常用用法 zgrep 不解压过滤压缩包中文本 Linux命令大全 手册 循环实时查看最后50行记录 tailf n 50 tomcat stdou
  • 在论坛中出现的比较难的sql问题:21(递归问题 检索某个节点下所有叶子节点)...

    最近 在论坛中 遇到了不少比较难的sql问题 虽然自己都能解决 但发现过几天后 就记不起来了 也忘记解决的方法了 所以 觉得有必要记录下来 这样以后再次碰到这类问题 也能从中获取解答的思路 问题 求SQL 检索某个节点下所有叶子节点 部门表
  • centos7配置yum为国内源

    问题 yum install libXm so 4 报错 Cannot find a valid baseurl for repo base 7 x86 64 因为yum源不是国内的 切换一下 步骤 卸载 yum rpm aq grep y
  • 字节青训营第十三课之深入浅出RPC框架的笔记与总结.md

    基本概念 本地函数调用 函数调用完整过程如图 藏实际上编译器经常优化 参数和返回值少时直接将其存在寄存器 不需操作栈 直接online不需call 将a和b的值入栈 经函数指针找到calculate 进入函数取栈中值2和3赋给x和y 计算x
  • C# GDI+ 绘图

    1 坐标系统 1 坐标原点 在窗体或控件的左上角 坐标为 0 0 2 正方向 X轴正方向为水平向右 Y轴正方向为竖直向下 3 单位 在设置时 一般以像素为单位 像素 Pixel 是由图像 Picture 和元素 Element 组成 是用来
  • 怎么在百度里通过关键词搜索到自己的网站

    1 需要在百度站长平台提交自己的网址 2进入百度站长平台 点击链接提交 3 点击添加站点 等待百度收录之后 4 在百度搜索框中输入 如下图 site后面的是你的域名 然后空格 加你要搜索的关键词 在该域名上的网页上要有该关键字 5 输入关键
  • git bash 命令行反应慢、卡顿

    1 在Windows11的电脑上安装了git 后 鼠标右键打开git bash here 打开窗口缓慢 输入命令也慢的要死 如果安装git的时候选择在桌面创建图标 通过桌面图标打开也是一样的 2 最简单的ls 命令 都要停顿半秒 3 点击桌
  • Flops 计算以及代码快速查看网络参数、浮点数

    详细计算 卷积神经网络CNN中的参数量 parameters 和计算量 FLOPs 知乎 FLOPS 全大写 指每秒浮点运算次数 可以理解为计算的速度 是衡量硬件性能的一个指标 硬件 FLOPs s小写 指浮点运算数 理解为计算量 可以用来
  • Lattice CrosslinkNx LIFCL-40应用连载5:如何使用MIPI D-PHY硬核IP

    作者 Hello Panda 一 目标 配置CMOS Sensor OV9734 并通过MIPI DPHY硬核接收数据 使用一个RISC V软核 实通过AHB总线访问I2C FIFO 通过I2C总线配置OV9734 Sensor 使用MIP
  • 基于VS调试分析 + 堆栈观察问题代码段

    文章目录 问题代码段1 阶乘之和 问题代码段2 越界的危害 发现问题 分析问题 思考问题 堆栈原理 解决问题 DeBug与Release 程序员与测试人员 总结与提炼 问题代码段1 阶乘之和 先来看一道C语言中比较基础的题目 求解阶乘的和
  • java --向上转型和向下转型

    一 简述 Java 转型主要是用在继承和接口实现的场景 Java 转型可分为向上转型和向下转型 区别如下 向上转型 通过子类对象实例化父类对象 这属于自动转换 向下转型 通过父类对象实例化子类对象 这属于强制转换 只要记住一句话即可 父类引
  • JAVA 多态 从内存角度分析

    设父类对象占内存空间100M 子类对象占内存空间50M 问题 对象转型问题 为什么只有父类变量指向子类对象 因为父类需要100M 只能指向比自己更大的空间 父类变量指向子类对象时变量情况 a pa c cc 父类变量实际上指向的是 和 pc