class BC
{
public virtual void Display()
{
System.Console.WriteLine("BC::Display");
}
}
class DC : BC
{
public virtual void Display()
{
System.Console.WriteLine("DC::Display");
}
}
class TC : DC
{
public virtual void Display()
{
System.Console.WriteLine("TC::Display");
}
}
class Program
{
public static void Main()
{
BC b;
b = new BC();
b.Display();
b = new DC();
b.Display();
b = new TC();
b.Display();
}
}
Почему вывод не «BC :: Display DC :: Display TC :: Display»?Почему выход следующей программы => BC :: Display BC :: Display BC :: Display
Проверьте это: https://stackoverflow.com/questions/23313408/why-is-cant-use-overriding-method-in -c-not-about-keyword? rq = 1 – Nikola
Предупреждения компилятора дают подсказку, почему это происходит. Вы скрываете унаследованных членов. – Dirk