Procedure ShowName;. TStudent1=OBJECT(TStudent)
Procedure ShowDate;
Procedure ShowRate;
END;
TStudent1=OBJECT(TStudent)
Bal:Real;
Procedure Init(Nm,Dt:String; Rt,Bl:Real);
Function GetBal:Real;
Function GetSum:Real;
Procedure ShowBal;
Procedure ShowAll;
END;
Методи ShowName, ShowDate, ShowRateі ShowBalвиводять прізвище, дату народження, розмір стипендії і середній бал відповідно. Метод GetSumвикористовуєBalдля розрахунку суми стипедії від середнього балу. Метод ShowAllвиводить значення всіх полів одночасно.
Для екземпляру St1 типу TStudent1 можна використовувати набір методів для непрямої роботи з полями даних, наприклад:
WITH St1 DO BEGIN
Init(‘Ляшук С.Т.’,’10.02.1995’,700,4.5);
ShowAll;
END;
Доступ до полів об’єкту здійснюється лише методами цього об’єкту. Таке правило є не обов’язковим, а рекомендаційним.
Перевизначення методів
При використанні стандартних методів Pascal-ю дуже важко або й зовсім неможливо створювати гнучкі процедури, які б працювали з формальними параметрами змінних типів, як це робить, наприклад, процедура writeln, що може виводити на екран дані типу string, real, integer, boolean і споріднені з ними.
Ця проблема вирішується об’єктно-орієнтованим програмуванням за допомогою механізму успадковування: якщо визначений породжений тип, то методи батьківського типу успадковуються, однак при бажанні вони можуть перевизначатися. Для перевизначення успадкованого типу просто описується новий метод з тим же іменем, що і успадкований метод, але з іншим тілом, а у випадку потреби – і з новою множиною параметрів.
Пояснимо цей процес на прикладі. Попередньо ми створили два об’єктні типи:
Type
TStudent=OBJECT
Name:String[30];
Date:String[10];
Rate:Real;
Procedure Init(Nm,Dt:String; Rt:Real);
Function GetName:String;
Function GetDate:String;
Function GetRate:Real;
Дата добавления: 2015-08-26; просмотров: 539;