Полиморфизм и виртуальные методы
Следующая программа, используя рассмотренные выше объявления классов 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; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Label1: TLabel; Label2: TLabel; Button1: TButton; Button2: TButton; procedure ButtonlClick(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;