Иллюстрированный самоучитель по 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.

    Программисты с опытом использования интерфейсов BVB5 и VB6 будут приятно удивлены тем, насколько понятнее выглядят программы при реализации интерфейсов в VB .NET. В синтаксисе произошли заметные изменения к лучшему.


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