Наследование и интерфейсы
- Основы
наследования
- Знакомство
с наследованием
- Обращение
к
функциональности
базового класса
- Переопределение
свойств и методов
- Как
стать начальником?
- Просмотр
иерархии
наследования
- Правила
преобразования и
обращения к
членам классов в
иерархии
наследования
- Полиморфизм
на практике
- Замещение
- Абстрактные
базовые классы
- Пример:
класс CollectionBase
- Корневой
базовый класс Object
- Основные
методы класса Object
- Equals
и ReferenceEquals
- МетодToString
- Функция
GetType и рефлексия
- MemberWiseClone
- Проблема
неустойчивости базовых
классов и контроль версии
- Интерфейсы
- Механика
реализации интерфейса
- Нетривиальное
применение
интерфейсов
- Выбор
между интерфейсами и
наследованием
- Важнейшие
интерфейсы .NET Framework
- ICloneable
- Disposable
- Коллекции
- For Each и
интерфейс lEnumerable
- ICollection
- IList
- IDictionary
- IComparable
- Интерфейс
IComparer
В предыдущей
главе кратко упоминались два
столпа объектно-ориентированного
программирования в VB .NET: наследование
реализации, обеспечивающее
возможность многократного
использования кода, и наследование
интерфейсов, то есть «контракт»,
которому должны соответствовать
некоторые аспекты поведения класса.
Обе разновидности наследования
будут подробно рассмотрены в этой
главе.
Для начала мы
покажем, как в VB .NET организовано
наследование реализации. К
сожалению, при изучении этой темы
никак нельзя ограничиться
поверхностным знакомством. Дело в
том, что непродуманные действия
программиста при наследовании
реализации приводят к весьма
неприятным последствиям, поэтому в
этой главе мы потратим довольно
много времени, показывая, как
избежать этих опасностей за счет
тщательного проектирования
иерархии наследования.
После описания
механики и основных принципов
наследования реализации мы во всех
подробностях изучим класс Object,
являющийся предком всех объектов .NET.
Завершая описание наследования
реализации, мы покажем, как в .NET
решается проблема неустойчивости
базовых классов, вызывающая
немало хлопот при наследовании
реализации в других объектно-ориентированных
языках — таких, как Java и С++. Не
пугайтесь термина «проблема
неустойчивости базовых классов»;
речь идет всего лишь о том, что
непродуманные изменения базового
класса могут нарушить работу
производных классов.
От наследования
мы перейдем к реализации
интерфейсов в VB .NET. В завершение
этой главы вы узнаете, как
использовать важнейшие интерфейсы
.NET Framework IComparable, ICloneable и IDisposable.
Содержание раздела
|