Объекты в качестве аргументов метода - C#
Формулировка задачи:
Приветствую.
Имею код:
При вызове:
В консоли оказывается не ожидаемая мной child, а parent. Какое-то время обходился вводом интерфейса (Пусть будет I), и заметой типа аргумента с A на этот интерфейс I, однако, хотелось бы услышать все же правильный способ.
Заранее спасибо.
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());
Решение задачи: «Объекты в качестве аргументов метода»
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"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д