派生类对象在内存中的外观如何?

时间:2012-02-20 11:04:32

标签: c# oop c#-4.0 inheritance

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

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

2 个答案:

答案 0 :(得分:4)

这是显示对象内存表示的article。基础和派生类的字段存储在一起。方法被放入方法表结构

答案 1 :(得分:2)

实际(物理)布局如何是“实施细节”。框架(CLR)可以指定一些细节,语言根本不这样做。

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

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

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