class Program
{
static void Main(string[] args)
{
Dog dog = new Dog() ;
Console.WriteLine(dog.Name); //Animal
}
}
class Animal
{
public Animal()
{
Name = "Animal";
}
virtual public string Name
{
set;
get;
}
}
class Dog : Animal
{
public Dog()
{
}
public override string Name
{
set;
get;
}
}派生类中的Name属性为什么没有override基类中的Name属性,结果应该是空。我知道执行构造函数时,先执行Animal(),再执行Dog(),是不是Animal的构造函数中给Name赋值,也同时会给Dog的Name属性赋值?
new Dog() 的时候,把实例 字段成员写出来,就知道了。还有方法表是什么样子的,对继承就会有很好的理解。