Borland Pascal. Руководство пользователя

       

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


Целью науки является описание взаимодействий во вселенной. Большая часть работы в науке при продвижении к цели заключается просто в построении генеалогических деревьев. Когда энтомолог возвращается с Амазонки с неизвестным ранее насекомым в банке, то главной его заботой является определение, где это насекомое рас- полагается в гигантской схеме, на которой собраны научные назва- ния всех других насекомых. Аналогичные схемы составлены для рас- тений, рыб, млекопитающих, рептилий, химических элементов, эле- ментарных частиц и космических галактик. Все они выглядят как ге- неалогические деревья: с единой всеобщей категорией в вершине и все увеличивающимися число категорий, которые лежат ниже этой единственной категории, и разворачиваются веером по мере прибли- жения к границам разнообразия.

Внутри категории "насекомые" имеется два подразделения: на- секомые с видимыми крыльями и насекомые со спрятанными крыльями или вообще бескрылые. Среди крылатых имеется большее число кате- горий; мотыльки, бабочки, мухи и т.д. Каждая категория содержит большое число подкатегорий, а ниже этих подкатегорий может иметь- ся даже еще большее число подкатегорий (см. Рис. 9.1).

Этот процесс классификации называется таксономией. Это прек- расная начальная метафора для механизма наследования в объект- но-ориентированном программировании.

Вопросами, которые задает ученый при попытке классификации некоторого животного или объекта, являются следующие. В чем этот объект похож на другие объекты из общего класса? В чем он отлича- ется от других объектов? Каждый конкретный класс имеет множество свойств поведения и характеристик, определяющих этот класс. Уче- ный начинает с вершины конкретного генеалогического дерева и про- ходит по дочерним областям, задавая себе эти вопросы. Наивысший уровень самый общий, а вопросы самые простые, например, крылатое или бескрылое? Каждый последующий уровень является более специфи- ческим, чем предыдущий, и менее общим. В конце концов, ученый до- бирается до точки подсчета волосков на третьем сегменте задней ноги насекомого - что воистину специфично. (И скорее всего о нем следует сказать, что он не энтомолог.)


+-----------+ | насекомые | +-+-------+-+ +---------------+ | | | +----+-----+ +---+-------+ | крылатые | | бескрылые | ++---+---+-+ +-----------+ +--------+ | +-------+ +---+------++----+----++-----+----+ | мотыльки бабочки мухи | +----------++---------++----------+

Рис. 9.1 Таксономическая схема насекомых.

Важно помнить то, что если характеристика однажды определе- на, то все категории, расположенные ниже данного определения, со- держат эту характеристику. Таким образом, как только вы определи- ли насекомое, как члена отряда diptera (мухи), то вам не следует отмечать снова, что у мух имеется одна пара крыльев. Разновид- ность насекомых, которую мы зовем мухи, наследует эту характерис- тику от своего отряда.

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


Содержание раздела