Виходячи з уже створеного об’єктного типу, можна створювати новий тип, який успадкує поля даних і методи від батьківського типу. Такий механізм називається успадковуванням, а новий об’єкт по відношенні до раніше створеного – дочірнім. На основі цього дочірнього типу теж можна створювати новий об’єкт, для всіх них перший об’єкт буде прабатьківський.
По відношенню до екземплярів об’єктів можна виконувати операцію присвоєння. Згідно із загальним правилом, змінна зліва має належати до батьківського типу, справа – до дочірнього, або ж обидві змінні повинні належати до того самого об’єктного типу.
Об’єднання в об’єкті коду та даних називається інкапсуляцією. При створенні об’єктів слід намагатися визначити їх так, щоб доступ до полів даних виконувався власними типами цих об’єктів.
При потребі, у дочірньому типі можна перевизначити метод оатьківського об’єкта. Поля даних перевизначати не можна.
Питання по темі
1. Вибрати правильний запис, який би реалізував механізм успадковування
а) TStudent1=OBJECT:TStudent
Bal:Real;
END;
б) TStudent1=OBJECT(TStudent)
Bal:Real;
END;
в) TStudent1=OBJECT()
TStudent+Bal:Real;
END;
2. Нехай змінні a і b - об’єктного типу, причому a – дочірнього, b – батьківського. Який із записів правильний:
а) a:=b;
б) b:=a;
в) Обидві операції коректні
3. Яка директива вказує, що поля і методи, записані після неї, можуть використовуватися тільки в межах модуля?
а)PRIVATE
б)PUBLIC
в)CONSTRUCTOR
4. Як називається об’єднання в об’єкті коду та даних
5. Якщо метод дочірного об’єкту має ту ж назву, що й метод батьківського об’єкту, але інше тіло чи параметри, то цей метод називається
Тема 3 Об’єктно-орієнтоване програмування в Pascal. Віртуалізація методів
Статичні методи
Проблема успадковування
Віртуалізація методів
Раннє і пізнє зв’язування
Підсумок
Питання по темі