Cамоучитель по VB.NET

         

 

Наследование и интерфейсы

  • Основы

    наследования
  • Знакомство с наследованием
  • Обращение к функциональности базового класса
  • Переопределение свойств и методов
  • Как стать начальником?
  • Просмотр иерархии наследования
  • Правила преобразования и обращения к членам классов в иерархии наследования
  • Полиморфизм на практике
  • Замещение
  • Абстрактные базовые классы
  • Пример: класс 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.


Начало Вперед


Содержание раздела