所以我有一个名为AbstactSearchWithTwoLevelCache的抽象类被提供给我。它的所有抽象属性只有读取权限(带有get;)。我不允许添加一个集合;到那些抽象的属性。有没有办法在派生类SearchWithTwoLevelCache中更改它?换句话说,有没有办法在派生类中设置这些属性?修改派生类中抽象类的访问权限
0
A
回答
2
如果标记与new
的财产,你定义一个新的属性,如:
abstract class BaseClass
{
public int Property
{
get { ... }
}
}
class NewClass : BaseClass
{
public new int Property
{
get { return base.Property; }
set { ... }
}
}
编辑:
上述工作,如果在基类的属性不是abstract
。当它是抽象的时候,这是行不通的,因为你需要实现它。你有一个选择是在两者之间创建一个类,如下所示:
abstract class BaseClass
{
public abstract int Property { get; }
}
class Between : BaseClass
{
public override int Property
{
get { ... }
}
}
class NewClass : Between
{
public new int Property
{
get { return base.Property; }
set { ... }
}
}
但是,这绝不是一个优雅的解决方案。然后,真正的答案变成你不能真正做到这一点(至少不是没有上述的工作)。
+0
对不起,误解了你的问题。更新了答案。 –
1
我无法想象一种可以直接覆盖它们的方法。间接地,当您重写抽象类属性时,Getters可以从私有字段中检索,然后可以创建具有设置这些字段的Setters的新属性。
我知道的钻机种类。也许有更好的方法来解决这个问题。
相关问题
- 1. 从非抽象类派生抽象类
- 2. 多派生抽象类?
- 3. 为什么要将基类中的受保护访问更改为派生类中的公共访问权限?
- 4. 访问派生类
- 5. 纯抽象类和派生类型
- 6. 使用声明修改派生类中的访问说明符
- 7. 从抽象类和非抽象类派生的差异
- 8. 基类中的访问派生类
- 9. 从基类修改派生类的值
- 10. 派生自抽象类,仅引用派生类
- 11. 如何从抽象类访问派生类对象升压蟒蛇
- 12. C++中派生类的对象可以被父类访问吗?
- 13. CsvHelper从抽象类中保存派生类对象
- 14. 派生类的抽象方法限制控制
- 15. 访问在派生类
- 16. 派生类访问的基类 - 如何?
- 17. C++派生类是抽象错误
- 18. 使用抽象类来实现派生
- 19. 基类是抽象的,派生也是抽象的?
- 20. 从派生类中修改变量
- 21. 数组中的抽象类的派生类
- 22. 有关其派生类的抽象类参考保持对象
- 23. 作为抽象类的基类派生类
- 24. 我们能否从抽象类的派生类中调用super.someMethod()?
- 25. 从抽象基类中派生类的调用c'tor
- 26. 抽象类和访问器
- 27. 访问派生类中的字段
- 28. C++派生类访问基类成员
- 29. 从派生类访问基类函数
- 30. 如何从其他派生类访问其他派生类?
也看看这个:[覆盖抽象只读属性读/写属性](http://stackoverflow.com/questions/1489361/override-abstract-readonly-property-to-read-write-property) –