ється тим, що в таблиці динамічних методів класу зберігаються адреси тільки тих динамічних методів, які визначені у даному класі. При виклику динамічного методу адресу коду його реалізації спочатку шукається в таблиці DMT, що відноситься до типу даного екземпляра. Якщо адреса не знайдений, проводиться пошук в таблицях DMT всіх класів-предків у порядку ієрархії.
В· Для перекриття віртуальних і динамічних методів використовується службове слово override.
Розглянемо приклад використання виртуал ьн ого методу для реалізації концепції поліморфізму. З цією метою оголосимо методи класу В«окружністьВ», які перевизначаються в класі В«кільцеВ», як віртуальні (додаток 7).
При такому визначенні ці класи є поліморфними.
Віртуальний метод може бути оголошений з модифікатором fina l. Такі методи не можуть бути перекриті в нащадках класу.
Також слід згадати про поняття, що не вивчаються в шкільному курсі. Це абстрактні методи, перекриття методів, конструктори і деструктори і перенавантажувані методи. Всі вони докладно вивчаються в середньо-спеціальних та вищих навчальних закладах. p align="justify"> Області видимості
У класах мови Object Pascal існує можливість розмежовувати області видимості полів і методів. Область видимості задається спеціальним зарезервованим словом. Розрізняються п'ять варіантів областей видимості. Розглянемо 3 основні. Опубліковану область і область автоматизації залишимо без розгляду.
В· Загальна область видимості задається директивою pu blic . Вона не накладає ніяких обмежень на видимість. Поля і методи категорії public доступні для інших об'єктів у будь-якому модулі, який посилається на модуль, що містить опис класу.
В· Особиста область видимості задається директивою private. З її допомогою реалізується мінімальна область видимості. Поза модуля, в якому визначено клас, елементи категорії private недоступні. Використання області видимості private дозволяє повністю приховати особливості внутрішньої реалізації класу.
В· Захищена област ь видимості задається директивою protected. Елементи категорії protected крім модуля, в якому визначено клас, доступні в класах, які є нащадками даного, навіть якщо вони визначаються в інших модулях.
Області видимості вказуються не для кожного елемента класу - директива задає область видимості для в...