Реферат: Программирование. Delphi
TEmployee= class (TTPerson)
FDepartment: integer;// номер отдела
constructor Create (Name :TNam e; Dep: integer);
end;
Заключенное в скобки имя класса TTPerson показывает, что класс TEmployee является производным от класса TTPerson. В свою очередь, класс ттрегз оп является базовым для класса TEmployee.
КлассTEmployee имеет свой собственный конструктор, который обеспечивает инициализацию класса родителя и своих полей. Вот пример реализации конструктора класса TEmployee:
constructor TEmployee.Create(N am e:Tnam e;D ep:integer);
begin
inherited Create (Name);
FDepartment: =Dep;
end;
В приведенном примере директивой inherited вызывается конструктор родительского класса, затем присваивается значение полю класса потомка.
После создания объекта производного класса в программе можно использовать поля и методы родительского класса. Ниже приведен фрагмент программы, демонстрирующей эту возможность.
engineer: = TEm ployee. create( ' Сидоров' , 413 ) ;
engineer.address:= 'yл .Блохина, д.8 , кв.10';
Первая инструкция создает объект типа TEmployee. Вторая устанавливает значение свойства, которое относится к родительскому классу.
Директивы Protected и Private
Помимо объявлений элементов класса (полей, методов, свойств) описание класса, как правило, содержит директивы protected (защищенный) и private (закрытый), которые устанавливают степень видимости элементов класса в программе.
Элементы класса, объявленные в секции protected, доступны только в порожденных от него классах. Область видимости элементов класса этой сек ции не ограничивается модулем, в котором находится описание класса. Обычно в секцию protected помещают описание методов класса.
Элементы класса, объявленные в секции private, видимы внутри модуля. Эти элементы не доступны за пределами модуля, даже в производных классах. Обычно в секцию Private помещают описание полей класса, а методы, обеспечивающие доступ к этим полям, помещают в секцию protected.
Ниже приведено описание классаTTPerson, в которое включены директивы управления доступом.
TTPerson = class
private
Fname:TName; { значение св-ва Name}
Faddress:TAddress;( значение св-ва Address)
protected
Constructor Create (Name :TNam e);
Function GetName :TName ;
Function GetAddress:T Address;