Как работается механизм переопределения методов в наследниках? - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Помогите разобраться.
Листинг программы
  1. using System;
  2. namespace Test
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. A a = new A();
  9. A b = new B();
  10. A c = new C();
  11. a.Print();
  12. b.Print();
  13. c.Print();
  14. }
  15. }
  16. class A
  17. {
  18. public virtual void Print() { Console.WriteLine("A"); }
  19. }
  20. class B:A
  21. {
  22. public new virtual void Print() { Console.WriteLine("B"); }
  23. }
  24. class C:B
  25. {
  26. public override void Print() { Console.WriteLine("C"); }
  27. }
  28. }
Объясните пожалуйста, почему в консоли выведет именно ААА? Как работает механизм переопределения методов в наследниках? И как воспринимать то, что ссылка А может ссылаться на объект В?

Решение задачи: «Как работается механизм переопределения методов в наследниках?»

textual
Листинг программы
  1. A b = new B();
  2. b.Print();
  3. (b as B).Print();

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут