Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Климов. Лекции / Алг_яз_Лекция_3.pptx
Скачиваний:
32
Добавлен:
14.05.2015
Размер:
686.83 Кб
Скачать

НАСЛЕДОВАНИЕ

Важной особенностью объектно­ ориентированной методологии является механизм, с помощью которого сложные типы данных могут наследовать характеристики более простых, т.е. более общих типов.

Этим механизмом является наследование.

В терминах Паскаля объект наиболее схож с типом RECORD, который является оболочкой для объединения нескольких связанных элементов под одним именем.

21

Предположим, Вы хотите написать программу, которая подсчитывает размер стипендий и заработной платы в нашем университете.

Запись можно организовать

 

следующим образом:

TPerson = RECORD

 

Name : STRING[30];

 

Date

: STRING[10];

 

Rate

: REAL;

 

END;

 

где переменная TPerson определена как запись.

Каждое значение присвоенное переменной TPerson, является экземпляром типа RECORD.

Наследование

22

TPerson

23

Предположим, что Ваша программа должна учитывать выплату

денег студентам, преподавателям и сотрудникам кафедры.

В каждой группе выплаты производятся особым способом.

Например, для получения данных о том, сколько денег должен получить студент, необходимо, в первую очередь, знать его средний балл.

Можно создать другой тип записи для каждой группы.

Можно построить запись TStudent вида:

TStudent = RECORD

Name : STRING[30];

Date

: STRING[10];

Rate

: REAL;

Ball

: REAL;

END;

 

Наследование

24

Однако, проявив немного сообразительности, можно сохранить тип TPerson путем создания поля типа TPerson внутри типа TStudent

TStudent = RECORD

Student: Tperson;

Ball

: REAL;

END;

 

Такая конструкция удобна и проста, поэтому постоянно используется в программировании.

Но она не учитывает специфику данных, обрабатываемых в программе.

Наследование

25

Необходимо установить, чем выплата денег студентам отличается от выплаты другим лицам, а в чем их сходство.

Студент, как и преподаватель или другой служащий кафедры, имеет:

1.

имя,

2.

фамилию,

3.

год рождения

4.

ему полагается определенная сумма денег.

Обратите внимание на то, что все указанные в примере

группы объединены по некоторым основным признакам,

характеризующим объект.

Наследование

26

Для студента тип

Наследование

27

Одним из элементов языка Турбо-Паскаль является новая категория структуры данных, связанная с записями, которая значительно мощнее предыдущей.

Типы данных в этой новой категории определяются с помощью нового зарезервированного слова OBJECT.

Объектный тип может быть определен как полный, самостоятельный тип, подобно описанию записей в Паскале, но он может определяться и как потомок существующего типа объекта путем помещения имени

родительского типа в скобки после зарезервированного слова

OBJECT.

Наследование

28

В нашем примере два связанных типа объектов

могли бы определяться следующим образом:

ТУРЕ

 

TPerson = OBJECT

Name

: STRING[30] ;

Date

: STRING[10];

Rate

: REAL;

END;

 

TStudent = OBJECT(TPerson)

Ball

: REAL;

END;

 

Здесь TPerson является родительским типом, a TStudent дочерним.

Фактически, этот процесс может продолжаться сколь угодно долго. К дочернему типу TStudent при необходимости можно определить еще один дочерний тип.

Чаще всего создание объектно-ориентированных прикладных программ состоит в построении такой иерархии объектов.

Наследование

29

Все типы, наследующие тип TPerson, называются его дочерними типами,

но TStudent является непосредственным дочерним типом от TPerson,

a TPerson является непосредственным родителем типа

TStudent.

Тип объекта (так же как и подкаталог DOS) может иметь любое число непосредственных дочерних типов и только одного непосредственного родителя.

Наследование

30

Соседние файлы в папке Климов. Лекции