Объекты в качестве аргументов метода - C#

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

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

Приветствую. Имею код:
class A
    {
        public void Method()
        {
            Console.WriteLine("parent");
        }
 
        public static void Test(A arg)
        {
            arg.Method();
        }
    }
 
    class B : A
    {
        new public void Method()
        {
            Console.WriteLine("child");
        }
    }
При вызове:
A.Test(new B());
В консоли оказывается не ожидаемая мной child, а parent. Какое-то время обходился вводом интерфейса (Пусть будет I), и заметой типа аргумента с A на этот интерфейс I, однако, хотелось бы услышать все же правильный способ. Заранее спасибо.

Решение задачи: «Объекты в качестве аргументов метода»

textual
Листинг программы
class A
    {
       // ну и можно скрыть от клиентского кода, раз уж напрямую не используете
        protected virtual void Method()
        {
            Console.WriteLine("parent");
        }
 
        public static void Test(A arg)
        {
            arg.Method();
        }
    }
 
    class B : A
    {
         protected override void Method()
        {
            Console.WriteLine("child");
        }
    }

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


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

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

13   голосов , оценка 3.769 из 5
Похожие ответы