Перегрузка методов - разобрать пример кода - 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);

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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