【发布时间】:2017-12-12 09:46:26
【问题描述】:
我有两个这样的课程:
public abstract class A
{
public int TheInt {get;set;}
public string GetString(double dbl)
{
return dbl.ToString();
}
}
public class B
{
public int TheInt {get;set;}
public string GetString(double dbl)
{
return dbl.ToString();
}
}
我还有另外两个类,每个类都从 A 或 B 派生:
public class C : A
{
}
public class D : B
{
}
我有两个这样的对象:
C objC = new C();
D objD = new D();
objC 和 objD 在内存消耗方面会有什么不同吗?请解释一下。
【问题讨论】:
-
这并不意味着冒犯,但您应该更多地了解
abstract的真正含义。它与内存消耗无关(不,接口不需要0字节)。 -
内存大小等于对象中字段的总和加上继承字段的大小。 abstract 关键字没有任何作用,它会影响方法。
-
@Tim Schmelter,谢谢,我用谷歌搜索并阅读了它,得出的结论是内存消耗没有差异(我什至做了一个基准测试并计算了垃圾中的内存使用情况收藏)。但是,我在想我可能错过了什么,所以我决定联系社区进行确认。
标签: c# .net inheritance memory memory-management