АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

УСПАДКОВУВАННЯ І ПЕРЕВИЗНАЧЕННЯ МЕТОДІВ. ПРИНЦИП КОНСТРУЮВАННЯ ПРОГРАМ

Читайте также:
  1. B. Основные принципы исследования истории этических учений
  2. ERP-стандарты и Стандарты Качества как инструменты реализации принципа «Непрерывного улучшения»
  3. I. Структурные принципы
  4. II. Принципы процесса
  5. II. Принципы средневековой философии.
  6. II. СВЕТСКИЙ УРОВЕНЬ МЕЖКУЛЬТУРНОЙ КОММУНИКАЦИИ ОТНОСИТЕЛЬНО ПРИНЦИПОВ ПОЛИТИЧЕСКОЙ СПРАВЕДЛИВОСТИ
  7. II. ЦЕЛИ, ЗАДАЧИ И ПРИНЦИПЫ ДЕЯТЕЛЬНОСТИ ВОИ
  8. II.4. Принципы монархического строя
  9. III. Принцип удовольствия
  10. III. Принципы конечного результата
  11. III. Принципы конечного результата.
  12. IV. Принцип реальности
Спадкоємство - наймогутніша властивість ООП. Воно дозволяє будувати бібліотеку за принципом "від простого до складного". Такий принцип розробки програм називається висхідним програмуванням. Введення за допомогою спадкоємства нового об'єкту в бібліотеку дозволяє максимально використовувати раніше створені об'єкти. При використанні ООП рекомендується поєднання двох принципів конструювання програм: низхідного і висхідного програмування. Методами низхідного програмування генеральний алгоритм розчленовується на ряд щодо крупних і закінчених в смисловому відношенні фрагментів (модулів). А реалізація цих фрагментів може проводитися з використанням ООП. Основне застосування ООП - це розробка бібліотек певного напряму. Прикладом такого застосування є VCL - Visual Component Library - бібліотека компонентів системи візуального програмування Delphi.
     

ООП дозволяє визначити новий об'єкт як нащадок (спадкоємець) іншого, раніше певного типу. Це означає, що новий тип автоматично отримує всі поля і методи раніше певного типу, який в цьому випадку називається предком або нащадком. У оголошенні типу-нащадка (спадкоємця) повинно бути вказано в круглих дужках після службового слова object ім'я батьківського типу. Поля і методи предка можуть з'являтися в тілах методів спадкоємців так, як якби вони були явно оголошені в об'єктах-спадкоємцях.

Це істотно спрощує запис схожих об'єктів.
     

Форма оголошення об'єкту-нащадка (спадкоємця):

Type <Ім'я типу об’єкта нащадка = object (Ім'я типу об’єкта предка) Нові поля об’єкта нащадка; Нові методи об’єкта нащадка; end;
Предок у типі може бути тільки один. Він може бути нащадком іншого типу і так далі Нащадків у одного предка може бути багато. Нащадок успадковує поля і методи всіх своїх предків.
     

Процес спадкоємства є транзитивним: якщо тип об'єкту ТуреВ - спадкоємець типу ТуреА, а тип ТуреС - спадкоємець типу ТуреВ, то тип об'єкту ТуреС також є спадкоємцем ТуреА:

Туре А → Туре В → Туре С

У нащадках (похідних, дочірніх) не можна оголошувати ідентифікатори полів, визначені в одному з типів предка. На методи це обмеження не розповсюджується.

Об'єкт-нащадок може перевизначити будь-який з методів, успадкований від предків. Метод, перевизначений в типі-нащадку, має те ж ім'я і може мати інші параметри. Перевизначений метод переходить до всіх подальшим нащадкам ієрархії. Для кожного нащадка діє метод, визначений в нім самому або в найближчому об'єкті-предку, якщо в даному об'єкті цей метод не перевизначений.

Приклад простій ієрархічної структури приведений на мал. 1. Рис. 1
     

Приклад простої ієрархічної структури

Спадкоємство має певні правила сумісності типів об'єктів. При цьому похідний тип (тип-нащадок) сумісний за типом зі своїм предком:

1) між екземплярами об'єкту;

2) між покажчиками на екземпляри об'єктів;

3) між формальними і фактичними параметрами.


Сумісність має місце тільки від нащадка до предка. Іншими словами, похідні типи можна використовувати замість батьківських, але не навпаки. Це визначає правила привласнення для змінних типу об'єкт. Вони полягають в тому, що змінним можна привласнювати значення цього ж типу і будь-якого похідного від нього, тобто предкові можна привласнити значення об'єкту-нащадка. Зворотне привласнення неприпустимо. Похідний тип завжди виходить не меншим, ніж тип предка (батьківський). В результаті виконання привласнення будуть скопійовані від джерела тільки ті поля, які є загальними для обох типів.
     

Приклад: оголошення типу нащадка.

Type

Ring = object (Dot)

Rad: integer;

end;

В приведенемо оголошеннютипу Ring присутнє поле Rad, яке визначає радіус кола, якого небуло у типі Dot. Крім цього, тип Ring успадкував всі поля свого предка (два значення типу integer, які визначають положення точки на екрані). Але тут ще відсутні методи. Вигляд оголошеного типу Ring, доповнений відповідними методами буде мати вигляд:
     

Type

Ring = object (Dot)

Rad: integer;

procedure Init (x, y, r: integer);

procedure Show;

procedure Hide;

end;

{--------------------------------------------------------------------------}

procedure Ring. Init;

Begin

a:=x; b:=y; Rad:=r;

end;

{--------------------------------------------------------------------------}

procedure Ring. Show;

Begin

Setcolor (white);

Circle (a, b, Rad);

end;

{--------------------------------------------------------------------------}

procedure Ring. Hide;

Begin

Setcolor (Black);

Circle (a, b, Rad);

end;


1 | 2 | 3 | 4 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)