在下面的代码中,输出是;
厄尼伯特埃尔莫
为什么最后的输出是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)