Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Теория ООП / Фигуральный базовый класс

  • Очень хочется все элементы снеговика поместить в один массив.
    Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков...
    Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив!
    После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом.
    А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
  • Дата отправки отчёта: сегодня в 12:56
  • Задание выполнено: за 28 мин.
  • Чему научился: Наследовать от пустого класса
  • Что было сложным: Написать Draw (Shape shape)
  • Комментарии: Вот моя реализация:
    private void Draw(Shape shape)
            {
                if (shape.GetType() == typeof(ColorCircle)) Draw((ColorCircle)shape);
                if (shape.GetType() == typeof(ColorLine)) Draw((ColorLine)shape);
                if (shape.GetType() == typeof(ColorBox)) Draw((ColorBox)shape);
                if (shape.GetType() == typeof(Circle)) Draw((Circle)shape);
                if (shape.GetType() == typeof(Line)) Draw((Line)shape);
                if (shape.GetType() == typeof(Box)) Draw((Box)shape);
            }
  • Оценка видео-уроку:
Отчёт от 8275 за Теория ООП / Фигуральный базовый класс




Оцени работу

 
Сохранить страницу:

10558. Иван Воронин
Иван Воронин
ответить
→  Tekashnik  # Теория ООП / Фигуральный базовый класс / 2017-04-25 19:11

в твоём случае, else if было бы производительнее. switch не пробовал?


  • Отчёт оценивали:
    3922Александр+1   2186Андрей Козлов+1   13540Алексей Малышев+1   4395Денис+1   13556Колупаев Сергей0   6452Кирилл Шмойлов+1   2353Павел Журавлевич+1   10558Иван Воронин+1   3850Григорий+1   1Евгений Волосатов+1   10100Александр Заскотченко+1   10418Oleg Didok+1   10670Сергей Соколов+1   11604Дмитрий+1   2508Сергей+1   13417chip+1  

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Создание абстрактного класса для перечисления объектов в массиве
Необходимо использовать специальный метод, который будет возвращать тип объектов внутри массива shape[].
Научился: Создавать базовый класс фигур
Трудности: Перегрузка метода Draw(Shape shape). Я не знаю как это реализовать. Подозреваю, что из этого метода нужно вызвать draw, передав ему конкретный тип (Line, ColorBox etc), но как это сделать не понимаю. Не понимаю как из shape получить реальный тип объекта.
Красивая идея использовать общий класс shape для всех фигур. Но реализовать ее я пока не в состоянии