|
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||
|
Спадкоємство і інтерфейси
У попередньому
розділі коротко згадувалися два
стовпи об'єктно-орієнтованого
програмування в VB .NET: спадкоємство
реалізації, що
забезпечує можливість
багатократного використання коди, і
спадкоємство інтерфейсів, тобто «контракт»,
якому повинні відповідати
деякі аспекти поведінки класу.
Обидва різновиди спадкоємства
будуть детально розглянуті в цьому
розділі. Спершу ми покажемо,
як в VB .NET організовано спадкоємство
реалізації. На жаль,
при вивченні цієї теми ніяк
не можна обмежитися
поверхневим знайомством. Річ у
тому, що непродумані дії
програміста при спадкоємстві
реалізації приводять до вельми
неприємних наслідків, тому в
цьому розділі ми витратимо досить
багато часу, показуючи, як
уникнути цих небезпек за рахунок
ретельного проектування
ієрархії спадкоємства. Після опису механіки і
основних принципів спадкоємства реалізації
ми у всіх подробицях вивчимо
клас Object, що є
предком всіх об'єктів .NET. Завершуючи
опис спадкоємства реалізації,
ми покажемо, як в .NET вирішується
проблема нестійкості базових
класів, що викликає
немало клопоту при спадкоємстві
реалізації в інших об'єктно-орієнтованих
мовах, — таких, як Java і С++. Не
лякайтеся терміну «проблема
нестійкості базових класів»;
мова йде всього лише про те, що
непродумані зміни базового
класу можуть порушити роботу
похідних класів. Від спадкоємства ми перейдемо до реалізації інтерфейсів в VB .NET. На завершення цього розділу ви дізнаєтеся, як використовувати найважливіші інтерфейси .NET Framework Icomparable, Icloneable і Idisposable.
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||