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

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

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

Вечер добрый. Есть классы:
Листинг программы
  1. class Cl1
  2. {
  3. public virtual void Fooo(int x)
  4. {
  5. Console.WriteLine("Cl1::Fooo");
  6. }
  7. }
  8. class Cl2 : Cl1
  9. {
  10. public override void Fooo(int x)
  11. {
  12. Console.WriteLine("Cl2::Fooo - int");
  13. }
  14. public void Fooo(object obj)
  15. {
  16. Console.WriteLine("Cl2::Fooo - obj");
  17. }
  18. }
Почему при следующем вызове:
Листинг программы
  1. Cl2 cl2 = new Cl2();
  2. int a = 7;
  3. cl2.Fooo(a);
Будет вызван метод с параметром object? Ввиду того, что этот параметр наследуется всеми прочими классами и структурами данных? А как же тогда строгая типизация.

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

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

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


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

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

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

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

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

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