我试图了解继承在C#中的工作方式.基本上,我有一个基类Base,它具有简单的函数sayIt.该函数使用在子类中重新定义的属性"i".在这里,它从0重新定义为1.当我运行这个程序时,我得到"0"作为输出而不是"1"这是我所期望的(因为在python中我会得到1).任何人都可以解释为什么,更重要的是,这是否是C#支持的模式?
class Program
{
static void Main(string[] args)
{
Derived d = new Derived();
Console.WriteLine(d.sayIt());
Console.ReadLine();
}
}
class Base
{
int _i = 0;
public int i
{
get { return _i; }
}
public String sayIt()
{
return Convert.ToString(this.i);
}
}
class Derived : Base
{
int _i = 1;
public new int i
{
get { return _i; }
}
}
Run Code Online (Sandbox Code Playgroud)