
- •2. Інтегроване середовище розробки Delphi: призначення і загальний опис середовища
- •3. Загальна організація програми в Delphi
- •4. Деякі довідкові відомості для роботи у середовищі Delphi
- •Цикл (программирование)
- •[Править]Определения
- •[Править]Виды циклов [править]Безусловные циклы
- •[Править]Цикл с предусловием
- •[Править]Цикл с постусловием
- •[Править]Цикл с выходом из середины
- •[Править]Цикл со счётчиком
- •[Править]Совместный цикл
- •[Править]Досрочный выход и пропуск итерации
- •[Править]Досрочный выход из цикла
- •[Править]Пропуск итерации
- •[Править]Необходимость
- •[Править]Вложенные циклы
- •[Править]Циклы с несколькими охраняемыми ветвями [править]Цикл Дейкстры
- •[Править]Цикл «паук»
- •[Править]Интересные факты
- •3.1 Інкапсуляція
- •3.2 Класи, компоненти і об'єкти
- •3.3 Спадкоємство
- •3.4 Розробка класів
- •3.4.1 Оголошення базового класу
- •3.4.2 Конструктори і деструкції
- •3.4.3 Оголошення похідних класів
- •3.5 Поліморфізм
- •3.5.1 Віртуальні функції
- •3.5.2 Дружні функції
- •3.6.1 Компоненти
- •3.6.1.1 Оголошення компонентних класів
- •3.6.1.2 Оголошення властивостей
- •3.6.1.3 Оголошення обробників подій
- •3.6.1.4 Оголошення автоматизованих властивостей і методів
- •3.6.1.5 Швидкий виклик функцій
- •3.6.1.6 Розширені типи даних Delphi
3.3 Спадкоємство
Однією з найчудовіших особливостей живої природи є її здатність породжувати потомство, що володіє характеристиками, схожими з характеристиками попереднього покоління. Запозичена у природи ідея спадкоємства вирішує проблему модифікації поведінки об'єктів і додає ООП виняткову силу і гнучкість. Спадкоємство дозволяє, практично без обмежень, послідовно будувати і розширювати класи, створені вами або кимось ще. Починаючи з найпростіших класів, можна створювати похідні класи зростаючої складності, які не тільки легкі у відладці, але і прості згідно внутрішньої структури.
Послідовне проведення в життя принципу спадкоємства, особливо при розробці крупних програмних проектів, добре узгоджується з технікою низхідного структурного програмування (від загального до приватного), і багато в чому стимулює такий підхід. При цьому складність кодів програми в цілому істотно скорочується. Похідний клас (нащадок) успадковує всі властивості, методи і події свого базового класу (батька) і всіх його попередників в ієрархії класів.
При спадкоємстві базовий клас обростає новими атрибутами і операціями. У похідному класі зазвичай оголошуються нові члени даних, властивості і методи. При роботі з об'єктами програміст зазвичай підбирає найбільш відповідний клас для вирішення конкретного завдання і створює одного або декількох нащадків від нього, які набувають здатності робити не тільки те, що закладене в батьку. Дружні функції дозволяють похідному класу дістати доступ до всіх членів даних зовнішніх класів.
Крім того, похідний клас може перенавантажувати (overload) успадковані методи у тому випадку, коли їх робота в базовому класі не підходить нащадкові. Використання перевантаження в ООП всіляко заохочується, хоча, в прямому розумінні значення цього слова, перевантажень зазвичай уникають. Говорять, що метод переобтяжений, якщо він асоціюється з більш ніж однією однойменною функцією. Зверніть увагу, що механізм викликів переобтяжених методів в ієрархії класів повністю відрізняється від викликів перевизначених функцій. Перевантаження і перевизначення - це різні поняття. Віртуальні методи використовуються для перевизначення функцій базового класу.
Щоб застосувати концепцію спадкоємства, наприклад, з годинником, слідуючи принципу спадкоємства, фірма "Casio" вирішила випустити нову модель, додатково здатну, скажімо, вимовляти час при подвійному натисненні будь-якій з існуючих кнопок. Замість того, щоб проектувати заново модель годинника (новий клас, в термінології ООП), що говорить, інженери почнуть з її прототипу (проведуть нового нащадка базового класу, в термінології ООП). Похідний об'єкт успадкує всі атрибути і функціональність батька. Вимовні синтезованим голосом цифри стануть новими членами даних нащадка, а об'єктні методи кнопок повинні бути переобтяжені, щоб реалізувати їх додаткову функціональність. Реакцією на подію подвійного натиснення кнопки стане новий метод, який реалізує вимовлення послідовності цифр (нових членів даних), відповідної поточному часу. Все вищесказане повною мірою відноситься до програмної реалізації годинника, що говорить.