Как работается механизм переопределения методов в наследниках? - 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5