ВУЗ:
Составители:
Рубрика:
223
Как и любое другое дерево, дерево объектов имеет «корень»
объект, являющийся прародителем всех других объектов иерархии, и
«ветви» – порожденные от него потомки. По мере передвижения от корня
к ветвям и перехода с ветви на ветвь объекты разрастаются в своих
размерах, присоединяя к себе все новые и новые поля и
методы. Если
иерархия объектов хорошо продумана, на каждом ее уровне к объекту-
родителю добавляются только необходимые поля и методы.
Механизм наследования это, пожалуй, самое мощное свойство
ООП. Без наследования объекты превращаются в простую комбинацию
данных и подпрограмм, не дающую качественных преимуществ по
сравнению с традиционными для Паскаля процедурами и
модулями.
13.4. Полиморфизм
Объект-потомок может не только дополнять поля и методы
родителя, но и заменять методы родителя на новые (заменять поля
родителя нельзя!). Например, вместо правила SETLINEVISIBLE мы могли
бы в объекте TLINE объявить правило SETVISIBLE, которое в этом случае
перекроет (заменит собой) одноименное правило объекта–родителя
TPOINT. В результате, к разным родственным объектам TPOINT и TLINE
можно
было бы применять одноименные правила SETVISIBLE,
обеспечивающие сходные в смысловом отношении действия – показать
или сделать невидимым графический объект. Свойство, позволяющее
называть разные алгоритмические действия одним именем, называется
полиморфизмом.
Полиморфизм – это свойство системы использовать объекты с
одинаковым интерфейсом без информации о типе и внутренней структуре
объекта.
Задания для самостоятельного выполнения
В соответствии с вариантом задания самостоятельно разработать
объект и наследника. Для каждого варианта приведен рекомендуемый
перечень операций над объектами.
1. Объект «Студент». Действия над объектами: начисление
стипендии, получение информации об успеваемости, вывод личных
данных, перевод на следующий курс, операции сравнения объектов,
присваивание.
2. Объект «Дата и время суток». Действия над объектами: сравнение
объектов, арифметические операции над объектами, вывод на экран
данных, присваивание.