Как работается механизм переопределения методов в наследниках? - C#
Формулировка задачи:
Добрый день! Помогите разобраться.
Объясните пожалуйста, почему в консоли выведет именно ААА? Как работает механизм переопределения методов в наследниках? И как воспринимать то, что ссылка А может ссылаться на объект В?
using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
A a = new A();
A b = new B();
A c = new C();
a.Print();
b.Print();
c.Print();
}
}
class A
{
public virtual void Print() { Console.WriteLine("A"); }
}
class B:A
{
public new virtual void Print() { Console.WriteLine("B"); }
}
class C:B
{
public override void Print() { Console.WriteLine("C"); }
}
}Решение задачи: «Как работается механизм переопределения методов в наследниках?»
textual
Листинг программы
A b = new B(); b.Print(); (b as B).Print();