Java 中的变量隐藏与函数重写有何不同?
Dec 17, 2024 am 08:12 AM理解 Java 中的成员变量隐藏(重写)
当子类定义与其超类中的成员变量同名的成员变量时,就会发生变量隐藏。与替换实现的函数覆盖不同,变量隐藏使用同名的新变量来掩盖超类变量。
考虑以下 Java 代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
输出:
1 2 3 4 |
|
在此示例中,intVal 变量在 A 和B类。 B的成员变量对A隐藏了1,导致当aRef设置为b时,访问的intVal值仍然是1,也就是A的intVal的默认值。
访问隐藏变量对于超类,我们可以使用 super.var 或 ((SuperClass)this).var。例如:
1 2 3 |
|
通过显式地将 aRef 转换为其超类,我们可以访问隐藏的成员变量。
记住,变量隐藏允许子类定义自己的同名变量超类变量,但它不会完全覆盖它们。两个变量共存,子类变量隐藏超类变量。
以上是Java 中的变量隐藏与函数重写有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

热门文章

热门文章

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

2025年的前4个JavaScript框架:React,Angular,Vue,Svelte

如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?

Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复
