【问题标题】:How does the derived class objects look like in memory?派生类对象在内存中的样子如何?
【发布时间】:2012-02-20 11:04:32
【问题描述】:

我还是有点懵。。 几天前我问了一个问题,如果派生类实例引用它的基类......我得到的答案是“不,它没有,派生类只是继承并包含基类的所有成员......如果这个是这样,那么派生类对象是如何保存在内存中的呢??

派生类对象的地址是否提供任何信息。关于它的基类?

【问题讨论】:

标签: c# oop c#-4.0 inheritance


【解决方案1】:

这是article,它显示了对象内存表示。基类和派生类的字段存储在一起。并将方法放入方法表结构中

【讨论】:

    【解决方案2】:

    它的实际(物理)布局方式是一个“实施细节”。框架(CLR)可能会详细说明这一点,但语言根本不这样做。

    但你可以想象它看起来像[[base class members][derived class members]]

    对实例的引用只会指向基类的起始地址。

    决定哪个部分“可见”的是参考的类型(基础或派生)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 2020-03-12
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      相关资源
      最近更新 更多