Перегрузка методов - разобрать пример кода - C#

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

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

Вечер добрый. Есть классы:
    class Cl1
    {
        public virtual void Fooo(int x)
        {
            Console.WriteLine("Cl1::Fooo");
        }
    }
 
    class Cl2 : Cl1
    {
        public override void Fooo(int x)
        {
            Console.WriteLine("Cl2::Fooo - int");
        }
 
        public void Fooo(object obj)
        {
            Console.WriteLine("Cl2::Fooo - obj");
        }
    }
Почему при следующем вызове:
 
Cl2 cl2 = new Cl2();
int a = 7;
cl2.Fooo(a);
Будет вызван метод с параметром object? Ввиду того, что этот параметр наследуется всеми прочими классами и структурами данных? А как же тогда строгая типизация.

Решение задачи: «Перегрузка методов - разобрать пример кода»

textual
Листинг программы
cl2.Fooo((int)a);

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


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

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

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