我有一个抽象类,我定义了一堆属性。这会导致子类的每个实例(需要覆盖属性)为此属性分配内存吗?我问的原因是一些子类需要属性,有些子类从不,但其他类确实访问抽象类的属性。
我是否会这样覆盖它会产生影响:
public override int someProperty {get; set;}
或者像这样(保持get和set方法有意为空,因为可能没有为相关字段分配内存?)
public override int someProperty
{
get
{
}
set
{
}
}
第一个问题,所以我希望我能正确地问一切。
答案 0 :(得分:3)
属性不(必然)暗示存储已分配。属性只是围绕get
和set
方法的语法糖。除非你还有一个存储数据的字段,否则它们只是一对方法。
示例:如果您的基类具有以下属性:
public virtual int SomeProperty { get { return 0; } { set { } }
然后没有分配存储空间。
但是如果你使用自动属性:
public virtual int SomeProperty { get; set; }
然后生成一个自动支持字段,为其分配存储空间。