【发布时间】:2015-05-03 07:39:48
【问题描述】:
这是程序:
public class Program
{
static void Main()
{
MyInheritedClass InheritInstance = new MyInheritedClass();
Console.WriteLine(InheritInstance.name); // the name field
}
}
public class MyClass
{
public string name= "I am the Base"; // the name field
public string Name // the Name property
{
get
{
return this.name;
}
}
}
public class MyInheritedClass : MyClass
{
new public string name= "I inherit Base";
}
这按预期工作。输出是:“我继承了 Base”
现在,如果我将 Console.WriteLine(InheritInstance.name); // the name field 更改为 Console.WriteLine(InheritInstance.Name); // the name property,它会神奇地输出:“I am Base”
我很困惑为什么会这样?我调用了MyInheritedClass的Name属性,MyClass的Name属性是怎么调用的?或者,MyClass 的 Name 属性被调用,它以某种方式神奇地访问了 MyClass 的名称字段?
【问题讨论】:
标签: c# variables inheritance variable-assignment