Читайте также: |
|
then st:= st + list[i].Info+ #13;
ShowMessage (st);
Во время работы программы каждый элемент массива может содержать как объект типа TStud, так и объект типа TProf. Концепция полиморфизма обеспечивает применение к объекту именно того метода, который соответствует типу объекта.
Следующая программа, используя рассмотренные выше объявления классов TPerson, TStud и TProf, формирует и выводит список студентов и преподавателей. Текст программы приведен в листинге 9.1, а диалоговое окно — на рис. 9.1.
Рис. 9.1. Диалоговое окно программы Полиморфизм
Листинг 9.1. Демонстрация полиморфизма
unit polimor_;
Interface
Uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
Type
TForm1 = class (TForm)
Edit1: TEdit; Edit2: TEdit;
GroupBoxl: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label1: TLabel; Label2: TLabel;
Button1: TButton; Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
Type
// базовый класс
TPerson = class
fName: string; // имя
constructor Create(name :string);
function info :string;
virtual;
end;
// класс Студент
TStud = class (TPerson)
fGr: integer; // номер группы
constructor Create(name: string; gr:integer);
function info :string;
override;
end;
// класс Преподаватель
TProf = class (TPerson)
fdep: string; // название кафедры
constructor Create(name :string;dep:string);
function info:string;
override;
end;
Const
SZL = 10; // размер списка
Var
Forml: TForm1;
List: array [l..SZL] of TPerson; // список
n:integer; // кол-во людей в списке
Дата добавления: 2015-02-16; просмотров: 93 | Поможем написать вашу работу | Нарушение авторских прав |