Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

If list[i] <> NIL

Читайте также:
  1. If IOResult <>0 then begin
  2. If n <> 1

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 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав