我有一个抽象类,它定义了一个get
,但没有set
,因为就该抽象类而言,它只需要get
。
public abstract BaseClass
{
public abstract double MyPop
{get;}
}
但是在某些派生类中,我需要一个 set
属性,因此我正在查看这个实现。
public class DClass: BaseClass
{
public override double MyPop
{get;set;}
}
问题是,我遇到一个编译错误,显示:
*.set:无法覆盖因为*.没有可重写的设置访问器。
尽管我认为上述语法完全合法。
您对此有什么想法? 有解决方法吗,或者为什么会这样?
编辑:我唯一能想到的方法是将get
和set
都放在抽象类中,并让子类在调用不必要的set
时抛出NotImplementedException
。 这是我不喜欢的方法,特别是特殊的setter方法。
double
值的方法,该方法将在每个类中具体实现。有时需要设置此值,因此其中一些类应公开一种设置方式。这样对吗?您需要使用多少级继承? - Codesleuth