Gil*_*ams 1 c# properties abstract
我有一个名为的抽象类CharacterBase。在里面,我有一些属性。例如:
public int Level { get; set; }
Run Code Online (Sandbox Code Playgroud)
我有一个名为的类Character,它继承自CharacterBase。我希望能够以某种方式覆盖该Level属性,并成为我自己的属性。例如:
int level;
public (override?) int Level
{
get
{
return level;
}
set
{
level = value;
Console.WriteLine("The new level is " + level + ".");
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以覆盖此属性,并使其成为我自己的属性而不是抽象类的属性?
编辑:我标记Level为虚拟属性。这是正确的方法吗?
要覆盖属性,它必须在基类中是虚拟的,并在派生类中具有重写:
class CharacterBase {
public virtual int Level {get;set;}
}
class Character : CharacterBase {
public override int Level { /* */ }
}
Run Code Online (Sandbox Code Playgroud)