Помогите понять задание
От: SaZ  
Дата: 21.11.11 23:57
Оценка:
Осилить следующее задание в университете оказался не в состоянии, прошу помощи:
Язык реализации — Delphi (хотя на самом деле — не принципиально, подойдёт любой ОО язык).

Описать класс-родитель и класс-потомок, имеющие методы, указанные в соответствующем варианте задания (потомок наследует или переопределяет методы родителя и приобретает новые). Предусмотреть необходимое количество кнопок для демонстрации каждого из методов объектов.

Задание: Нарисовать самосвал, который может поднимать кузов. Родительский класс – перемещающийся прямоугольник.

Главный для меня вопрос: что "самосвал" может наследовать из вышеперечисленного у "прямоугольника"?

Если предположить, что самосвал должен рисоваться достаточно условно и может состоять из прямоугольников — то это типичное агрегирование, но никак не наследование.
Если же нет — то я просто теряюсь в догадках, что можно переопределить у прямоугольника (и зачем тут вообще тогда наследование) .

Лирическое отступление:
P.S. Накипело!!! Заранее извиняюсь за излишнюю эмоциональность, но выскажусь... выше дана задача для первого курса дистанционной формы обучения (поит). Раньше по программе изучался паскаль ("синенькая консолька" или просто console app, без лишних наворотов), но сверху пришло указание срочно модернизировать программу обучения и внедрять современные языки и среды (Delphi вместо Turbo Pascal). Преподаватели к таким инновациям отнеслись с огромным энтузиазмом и радостно принялись переделывать вполне логичные старые задачи на новый лад. И срочно придумывать новые (особенно "хорошо" это получается у Delphi-преподавателей, которые программированием в последний раз занимались ооочень много лет назад в том самом TP) про всякие самосвалы и т.п. Например:
Было: Ввести с клавиатуры два числа, вывести их сумму, если первое больше второго; иначе вывести их произведение.
Стало (после "модернизации", дословно): Ввести два числа, вывести их сумму, если первое больше второго; иначе вывести их произведение. Для ввода данных использовать TEdit (для ввода матриц — TStringGrid). Для обработки некорректного ввода использовать блоки try except.
Собственно что бросается в глаза:
— Понятие исключительных ситуаций и их обработка объясняется за 5-10 минут в начале лабораторной (а часто даётся первокурсникам на самостоятельное изучение)
— Условия задач генерировались из старых, заточенных под консоль, условий с внедрением некоторых "шаблонов" для ввода-вывода данных (TEdit — для текста, TStringGrid — для матриц, TButton — для выполнения действий и т.п.). В результате во многих случаях получается никому не нужный бред.
— Разработка UI затрачивает основную часть времени и студенты вместо того, чтобы фокусироваться на решении задачи перепахивают гугл в поисках ответа на вопрос, почему переменной типа integer нельзя присвоить string? И такие студенты даже не представляют, как может существовать приложение без "главной формы".
— Такое введение в программирование рождает огромные массы формошлёпов, которые ничего не умеют и для которых любой технический вопрос начинается с фразы "А где взять компонент, который... ?"
delphi наследование косяки с образованием формошлёпство
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.