Концепция объектно-ориентированного
программирования предполагает возможность определять новые классы посредством
добавления полей, свойств и методов к уже существующим классам. Такой механизм
получения новых классов называется порождением. При этом но.вый, порожденный
класс (потомок) наследует свойства и методы своего базового, родительского класса.
В объявлении класса-потомка
указывается класс родителя. Например, класс TEmployee (сотрудник) может быть
порожден от рассмотренного выше класса TPerson путем добавления поля FDepartment
(отдел). Объявление класса TEmplioyee в этом случае может выглядеть так:
TEmployee
= class(TPerson)
FDepartment:
integer; // номер отдела
constructor
Create(Name:TName; Dep:integer);
end;
Заключенное в скобки
имя класса TPerson показывает, что класс TEmployee является производным от класса
TPerson. В свою очередь, класс TPerson является базовым для класса TEmployee.
Класс TEmpioyee должен
иметь свой собственный конструктор, обеспечивающий инициализацию класса-родителя
и своих полей. Вот пример реализации конструктора класса TEmployee:
В приведенном примере
директивой inherited вызывается конструктор родительского класса. После этого
присваивается значение полю класса-потомка.
После создания объекта
производного класса в программе можно использовать поля и методы родительского
класса. Ниже приведен фрагмент программы, демонстрирующий эту возможность.
engineer
:= TEmployee.Create('Сидоров',413);
engineer.address
:= 'ул.Блохина, д.8, кв.10';
Первая инструкция создает
объект типа TEmployee, вторая — устанавливает значение свойства, которое относится
к родительскому классу.
Знаете ли Вы, как разрешается парадокс Ольберса? (Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды. Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.