在下面的代码中,输出是;
厄尼伯特埃尔莫
为什么最后的输出是Elmo?不应该是厄尼吗?因为我实例化dog.Creature对象new Cat();.我认为,Name财产Cat类覆盖Name财产Creature类.
class Class1
{
public static void Main(string[] args)
{
var dog = new Dog();
var cat = new Cat();
dog.Creature = new Cat();
Console.WriteLine(cat.Name); //outputs Ernie
Console.WriteLine(dog.Name); //outputs Bert
Console.WriteLine(dog.Creature.Name); //outputs Elmo, why not Ernie?
Console.Read();
}
}
public class Animal<T> where T : Creature
{
public T Creature { get; set; }
private string _name = "Oscar";
public string Name { get { …Run Code Online (Sandbox Code Playgroud)