为抽象类的重写属性分配内存
本文关键字:分配 内存 属性 重写 抽象类 | 更新日期: 2023-09-27 18:22:21
我有一个抽象类,在其中我定义了一组属性。这会导致子类的每个实例(需要重写属性)为此属性分配内存吗?我问的原因是,有些子类将需要该属性,有些则永远不需要,但其他类确实访问抽象类的属性。
如果我这样覆盖它,会有什么不同吗:
public override int someProperty {get; set;}
或者像这样(故意保持get和set方法为空,因为可能没有为相关字段分配内存?)
public override int someProperty
{
get
{
}
set
{
}
}
第一个问题,所以我希望我问的都是对的。
属性并不(一定)意味着分配了存储。属性只是get
和set
方法的语法糖。除非您也有一个字段来存储数据,否则它们只是一对方法。
示例:如果你的基类有这样的属性:
public virtual int SomeProperty { get { return 0; } { set { } }
然后不分配存储。
但如果你使用自动属性:
public virtual int SomeProperty { get; set; }
然后生成一个自动备份字段,为其分配存储。