С#, наследование для чайника - C#

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

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

Всем добрый день, Подскажите, пожалуйста, имеется базовый класс, в котором объявлена виртуальная функция, в дочернем классе виртуальная функция переопределена, все нормально. Дело в том, что дочерних классов десятки, и мне не хотелось бы в каждом дочернем классе писать одну и ту же функцию. Если ее не переопределить, а оставить в базовом классе, нужно чтобы в этой функции были доступны поля дочернего класса, а базовый класс не может иметь доступа к полям дочернего класса. Есть идея в базовом классе объявить поле с типом базового класса и в конструкторе дочернего класса помещать туда ссылку на дочерний объект. Далее из функции базового класса обратится к этой ссылке и получить доступ к полям дочернего объекта. Может есть "классический" подход, подскажите пожалуйста..

Решение задачи: «С#, наследование для чайника»

textual
Листинг программы
        abstract class Animal
        {
            public abstract int LegsCount { get;}
        }
        abstract class Cow :Animal
        {
            public override int LegsCount { get { return 4; } }
        }
        abstract class Chicken:Animal
        {
            public override int LegsCount { get { return 2; } }
        }

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


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

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

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