Luc*_*s B 3 c# oop inheritance compiler-errors
我有一个抽象的基类,它有一个属性,我想防止隐藏,也就是新的,并覆盖.
public abstract class DomainObject
{
public bool IsDeleted { get; set; }
}
public class BankAccount : DomainObject
{
public bool IsDeleted { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
问题是:我需要BankAccount继承基础DomainObject类,所以我不能将其标记为密封,但我想在编译时防止IsDeleted的情况,一个覆盖或新的.
Jar*_*Par 11
在这种情况下IsDeleted
,不是虚拟的,因此无法覆盖.通常,虽然您可以通过不首先使属性成为虚拟或通过sealed
在属性上指定修饰符来防止进一步覆盖来阻止覆盖情况
public sealed override IsDeleted { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是你不能阻止通过隐藏new
.除了完全阻止子类型之外,无法阻止子类型new
在现有属性上使用
归档时间: |
|
查看次数: |
3123 次 |
最近记录: |