【发布时间】:2018-06-15 07:45:10
【问题描述】:
我对在继承的情况下如何完成对象分配感到困惑 考虑下面的代码。
class Base
{
}
class Derived : Base
{
// some code
}
如果我们这样做,则从 main 开始
Derived d = new Derived();
和
Base b = new Derived();
这两种情况在堆中的内存分配是多少。 派生对象是在基础对象内部还是它们都在彼此旁边
【问题讨论】:
-
由于两个对象都是用“new”创建的,它们在内存中会有不同的地址。
-
将 b 声明为
Base的事实并没有改变对象是什么,只是改变了它的处理方式。 -
我认为这与继承无关。如果您创建了
Derived的实例并将其分配给接口类型的变量,则同样适用。它仍然是Derived。
标签: c# .net oop inheritance heap-memory