Що таке спадкування в Visual C # (Sharp)?

Механізм успадкування схожий на генеалогічне дерево в тому, що ми маємо деревоподібну структуру з батьком і його спадкоємцями Подібно генеалогічкому дереву, дана структура може містити кілька рівнів Але механізм успадкування не зовсім такий, оскільки для кожного вузла генеалогічного дерева Труета пара людей

Механізм успадкування використовується класом для отримання функціональності базового класу, а сам клас стає подклассом базового класу У древовіой структурі механізму спадкування, особливо в NET, є тільки один кореневий батько При використанні успадкування ми отримуємо функціоналом, але ми також можемо підміняти (Override) функціональність (рис 61)

Рис 61 Демонстрація дворівневої структури спадкування на прикладі автомобілів BMW 530i і BMW 530xi

На перший погляд, на рис 61 показані два однакових автомобіля, але в дейсітельності це дві різні моделі, чиї трансмісії відрізняються істотним

чином З точки зору наслідування, модель BMW 530i можна вважати народить моделі BMW 530xi

ПРИМІТКА

У даному випадку визначення, хто батько, а хто спадкоємець, є моїм собсенним думкою, з яким деякі люди можуть не погодитися Таке расхожд в думках є і частиною обєктно-орієнтованого процесу розробки

Будучи заднеприводной, що означає більш легку розробку, вона б була разротана першою А повнопривідна модель розроблялася б на базі цієї першої моделі і була б лише її модифікацією, а не повністю новим автомобілем В обох моделях застосовуються однакові шини, двигун, рульове колесо, оелка кузова і т д Але в моделі 530xi застосовується повністю інша трансмісія, що робить істотний вплив на те, яким чином дана модель поводиться при водінні

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

Крім підміни функціональності, механізм спадщини можна використовувати для поліпшення, або на технічному жаргоні перевантаження (Overloading), функціональнті Продемонструємо цю концепцію знову на прикладі різних моделей однієї марки автомобіля (рис 62)

Рис 62 Демонстрація розширення функціональності

Всі три автомобілі, показані на рис 62, відносяться до лінійки 530 З точки зору успадкування функціональність нової моделі BMW 530xi Sports Wagon заснована на функціональності моделі BMW 530xi Але тут мається одна особеено – функціональність 530xi Sports Wagon вимагає виробити до неї прівиу Наприклад, в обох моделях багажник відкривається натисканням кнопки, але для кожної моделі кнопка знаходиться в різних місцях, та й багажник відкривається пазному Можна сказати, що кожна модель надає водієві свої інтеейс і поведінку

При використанні механізму спадкування для перевантаження функціональності ми додаємо функціональність, яка викликається таким же чином, але іспользтся і веде себе по-іншому При даній формі успадкування ми не просто менм поведінку, але також міняємо взаємодію з користувачем

У нашому прикладі ми використовуємо спадкування для розширення функціональнті, а не для її підміни або перевантаження

Джерело: Гросс К С # 2008: Пер з англ – СПб: БХВ-Петербург, 2009 – 576 е: ил – (Самовчитель)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*