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

JAVA继承中变量和方法的存储和方法中访问变量的顺序

一、变量归属与内存位置

  • static 变量:属于类,只存在一份,保存在方法区(或元空间)

  • 实例变量(非static):属于对象,每个对象单独一份,保存在堆内存中

二、非static方法中访问变量的查找顺序(非常重要)

在一个实例方法中写 x,JVM 查找顺序如下:

1. 栈中局部变量(包括方法参数)是否有 x?
2. 如果没有,从 this 指向的对象中找:
   - 先找子类对象自己的成员变量
   - 若子类没有,再查父类继承来的变量

这种顺序遵循“就近原则”,是 JVM 局部变量解析的核心。

三、访问 static 变量的查找逻辑

  • 编译期就确定了 static 变量的归属,不走对象、没有多态

  • 访问路径:

1. 先查当前类有没有定义这个 static 字段
2. 若没有,再往父类查

⚠️注意:虽然你可以通过对象来访问 static 字段,但实际解析还是走类的静态结构,写 s.species 实际是 Student.speciesPerson.species,取决于定义在哪个类里。

四、背诵用总结口诀(极简记忆)

static 属类 → 方法区,实例属对象 → 堆内存  

查变量顺序:局部 → this对象(子 → 父)  

static 无多态,编译期解析类结构  

访问 static,推荐类名.变量名 

一、方法归属与内存位置

  • static 方法:属于类,只存在一份,保存在方法区(或元空间)

  • 实例方法(非static):属于对象,每个对象单独一份,保存在堆内存中

二、方法类型分类

private 方法、final 方法、static 方法、虚方法(普通实例方法)

三、继承与重写

  • 私有方法:不能被子类继承,无法重写。子类定义同名方法不算覆盖,只是新方法。

  • final 方法:可被继承,但不能重写。子类继承后行为固定,不可修改。

  • static 方法:不随实例继承;子类若定义同名 static 方法,只是隐藏(非重写);调用时根据声明类型静态绑定。

  • 虚方法:指普通实例方法(非 private、非 final、非 static),支持继承和重写;调用时根据对象实际类型决定执行版本。

四、方法的调用规则(就近原则):

  • 在实例方法中使用 this.方法() 调用,总是执行当前对象所属类的方法(若被子类重写,则调用子类版本)。

  • 在实例方法中使用 super.方法() 调用,总是执行父类的方法版本(忽略子类的重写)。

  • 在静态方法中不能使用 thissuper,可以直接用类名调用子类的静态方法或父类的静态方法;在实例方法中调用静态方法时,虽然允许使用 this调用子类静态方法和super 调用父类静态方法,但推荐直接使用类名或省略。

五、示例说明

  • 父类 A 定义了 void foo(),子类 B 重写了 foo():在 B 的实例方法中调用 this.foo() 会执行 B 的实现,super.foo() 会执行 A 的实现。

  • 父类 A 定义了 static void bar(),子类 B 定义了同名 static void bar()(隐藏,不是重写):在 B 的实例方法中调用 this.bar()(或直接 bar())会调用 B.bar()super.bar() 会调用 A.bar()

六、背诵用总结口诀(极简记忆)

私有不继承,final 不可改  
static 隐藏按类定 → 无多态  
虚方法随子覆 → 运行时看实态  
this 调本类 → super 定父类  

http://www.xdnf.cn/news/367705.html

相关文章:

  • 视频流:大华及海康视频流本地测试预览
  • LeetCode 解题思路 47(最长回文子串、最长公共子序列)
  • SQL注入的绕过方式
  • 【人工智能学习之动作识别TSM训练与部署】
  • 通信阵列波导性能提升难?OAS 软件助力精准解决
  • 操纵杆支架加工工艺及钻3φ11孔夹具设计
  • TransPose: Keypoint Localization via Transformer(ICCV2021)
  • 【UEFN】用于可靠多模态情感分析的高效不确定性估计融合网络
  • ASCII码的快速记忆方法
  • 优雅草星云智控系统产品发布会前瞻:SNMP协议全设备开启指南-优雅草卓伊凡
  • 【传感器】代码——DHT11温湿度传感器
  • 企业如何选择靠谱的软件测试外包公司?
  • CSS实现图片垂直居中方法
  • rabbitmq学习笔记快速使用
  • ROS导航局部路径规划算法
  • 第十五节:图像形态学操作-形态学梯度
  • AIGC理论基础:大模型通识
  • Oracle OCP认证考试考点详解083系列14
  • Vue项目中实现自定义连线图
  • 硬件实操技巧记录
  • Edu教育邮箱2025年5月亲测有效
  • 解锁蜘蛛池 SEO 优化:网站流量增长的高效引擎
  • 初等数论--欧拉函数及其性质
  • TLS 加密通信介绍
  • 机器学习 期末考试题
  • 鞋样设计软件
  • 【库(Library)、包(Package)和模块(Module)解析】
  • iOS App 下架了无法下载 ? 推荐个软件——IPADown
  • 【时时三省】(C语言基础)二维数组举例
  • 什么是硅二极管温度传感器