Цель работы: изучить принцип наследования
Ход работы:
Задание 1. Наберите и проанализируйте программу. Определите в данной программе принципы наследования созданных классов. Объясните результаты выполнения программы.
PROGRAM OO_Beispiel_02;
USESCrt;
TYPE
Person-OBJECT Name,
Vorname: STRING; Groesse: REAL; CONSTRUCTOR Init; PROCEDURE Einlesen; PROCEDURE Ausgeben; FUNCTION Gewicht: REAUVIRTUAL; END;
{ Методы для класса Person }
CONSTRUCTOR Person.Init;
{ Применяется для инициализации используемых данных}
BEGIN
Name :- "; { Пустая строка }
Vorname :- ";
Groesse:=0.0; END;
PROCEDURE Person.Einlesen; BEGIN
WriteLn('Фамилия');
ReadLn(Name);
WriteLn ('Имя? ');
ReadLn(Vorname);
Write('PocT в метрах? ');
ReadLn(Groesse); END;
PROCEDURE Person.Ausgeben; BEGIN
Write Ln;
WriteLn ('Фамилия: ');
Write(Name);
Write(' Имя:');
Write(Vorname);
WriteLn(' Идеальный вес: ',Gewicht:3:1, 'кг.'); END;
FUNCTION Person.Gewicht: REAL; BEGIN
Gewicht:- Groesse * 100 - 100; END;
{ Обьявление подкласса Frau } TYPE
Frau- OBJECT(Person)
FUNCTION Gewicht: REAL;VIRTUAL; END;
{ Описание методов для подкласса Frau } FUNCTION Frau.Gewicht: REAL; BEGIN
Gewicht-Person.Gewlcht * 0.85; END;
{ Обьявление подкласса Mann } TYPE
Mann- OBJECT(Person)
FUNCTION Gewicht: REAL;VIRTUAL; END;
{ Описание методов подкласса Mann } FUNCTION Mann.Gewlcht: REAI; BEGIN
Gewicht:- Person.Gewicht * 0.90; END;
{ Обьявление экземпляров} VAR
Weiblich :Frau;
Maennlich :Mann;
CH :CHAR;
BEGIN
REPEAT
CH:-ReadKey;
CH:-UpCase(CH); UNTIL (CH - 'M') OR (CH - 'W');
Write Ln;
IFCH-'W THEN WITH Weiblich DO BEGIN Einlesen; Ausgeben; END {THEN WITH} ELSE WITH Maennlich DO BEGIN
Einlesen; Ausgeben; END; {ELSE WITH}
ReadLn; { Ожидание нажатия клавиши Enter } END.