You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建子类对象时super如何指向父类?是否会隐式生成父类对象?

关于super关键字的本质与常见表述语境解答

核心认知纠正

创建子类对象时,JVM全程仅会生成1个唯一的子类实例,不存在任何隐式创建的独立父类对象。

super关键字的真实作用

super本质是Java语法提供的访问标记,不是指向某个独立对象的引用,它的核心作用是:指示JVM访问当前子类实例中,从父类继承而来的成员(变量、方法),跳过子类自身重写/定义的同名成员。

「super指向父类对象」说法的来源

这个表述是面向初学者的简化类比表述,并非底层实现的客观描述,常见语境有两种:

  • 部分教材为了降低理解门槛,把子类实例内存布局中专门存储父类继承成员的区域,简化类比为「内置的父类对象」,把super访问该区域的逻辑描述为「指向父类对象」
  • 对比this关键字的作用时,为了快速区分两者的差异,会用「this指向当前类对象,super指向父类对象」的简化表述做区分,不需要学习者在入门阶段就理解内存布局细节

典型佐证

你可以自己测试两个特性验证上述结论:

  • 无法把super直接赋值给一个父类类型的变量,语法直接报错,因为它不是合法的对象引用
  • 子类构造方法第一行调用的super()构造方法,作用是初始化当前子类实例中继承来的父类成员,不是创建新的父类对象

内容的提问来源于stack exchange,提问作者user2494912

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:45:05