Рассмотрим этот код:
class Program
{
static void Main(string[] args)
{
Person person = new Teacher();
person.ShowInfo();
Console.ReadLine();
}
}
public class Person
{
public void ShowInfo()
{
Console.WriteLine("I am Person");
}
}
public class Teacher : Person
{
public new void ShowInfo()
{
Console.WriteLine("I am Teacher");
}
}
Когда я запускаю этот код, выводится следующее:
Я человек
Однако вы можете видеть, что это экземпляр Teacher
, а не Person
. Почему код делает это?