русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Рекомендації по програмуванню


Дата додавання: 2015-01-08; переглядів: 911.


 

Спадкоємство класів надає програмістові великі можливості організації коду і його багатократного використання. Спадкоємство класу Y від класу X означає, що Y є різновидом класу X, тобто конкретнішу, приватну концепцію. Базовий клас є більш загальним поняттям, ніж Y. Скрізь, де можна використовувати X, можна використовувати і Y, але не навпаки (пригадайте, що на місце базового класу можна передавати будь-який з похідних). Необхідно пам'ятати, що під час виконання програми не існує ієрархії класів і передачі повідомлень об'єктам базового класу з похідних - є тільки конкретні об'єкти класів, поля яких формуються на основі ієрархії на етапі компіляції.

Головна перевага спадкоємства полягає в тому, що на рівні базового класу можна написати універсальний код, за допомогою якого працювати також з об'єктами похідного класу, що реалізується за допомогою віртуальних методів.

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

Для представлення загальних понять, які передбачається конкретизувати в похідних класах, використовують абстрактні класи. Як правило, в абстрактному класі задається набір методів, тобто інтерфейс, який кожен з нащадків реалізовуватиме по-своєму.

Альтернативним спадкоємству механізмом використання одним класом іншого є вкладення, коли один клас є полем іншого. Вкладення представляє стосунки класів "Y містить X" або "Y реалізується за допомогою X".

Для вибору між спадкоємством і вкладенням служить відповідь на питання про те, чи може у Y бути декілька об'єктів класу X ("Y містить X"). Крім того, вкладення використовується замість спадкоємства тоді, коли про класи X і Y не можна сказати, що Y є різновидом X, але при цьому Y використовує частину функціональності X ("Y реалізується за допомогою X").



<== попередня лекція | наступна лекція ==>
Клас object | Синтаксис інтерфейсу


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн