在Java中,基本类实例和派生类实例之间的物理内存是如何组织的?
当子类在Java中,基本类实例和派生类实例之间的物理内存是如何组织的?,java,oop,Java,Oop,当子类C被实例化时,我们知道它的超类的构造函数(比如a和B(B扩展a)将在C之前被实例化。那么这是否意味着: 是否为A的实例、B的实例和C的实例分配了单独的内存 对于子类C,除了它自己的字段外,它是否还为继承自B和A的字段分配了所有物理内存 B的实例除了自己的实例外,还具有从A继承的字段的物理内存吗 。。。我们知道它的超类(比如A和B(B扩展了A))的构造函数将被实例化 类被实例化。构造函数被调用 (编辑中建议这应该是“实例化对象”;但是,这在技术上是不正确的。根据下面链接的同一JLS部分:“当
C
被实例化时,我们知道它的超类的构造函数(比如a
和B
(B
扩展a
)将在C
之前被实例化。那么这是否意味着:
C
,除了它自己的字段外,它是否还为继承自B
和A
的字段分配了所有物理内存B
的实例除了自己的实例外,还具有从A
继承的字段的物理内存吗C
实例具有从A
和B
继承的字段的内存据我所知,创建了1个实例,C的内存映射包含它的父对象。我假设如果是A[field1,field2],那么B将是B[A[field1,field2],field3]——即A分配在B的实例中,因此当您转换为A时,它将正确映射。我还原了您对我的答案的编辑。请参阅添加的附加说明,解释为什么原文在技术上更准确。