![]() |
![]() |
Наследование и интерфейсы
В предыдущей
главе кратко упоминались два
столпа объектно-ориентированного
программирования в VB .NET: наследование
реализации, обеспечивающее
возможность многократного
использования кода, и наследование
интерфейсов, то есть «контракт»,
которому должны соответствовать
некоторые аспекты поведения класса.
Обе разновидности наследования
будут подробно рассмотрены в этой
главе.
Для начала мы
покажем, как в VB .NET организовано
наследование реализации. К
сожалению, при изучении этой темы
никак нельзя ограничиться
поверхностным знакомством. Дело в
том, что непродуманные действия
программиста при наследовании
реализации приводят к весьма
неприятным последствиям, поэтому в
этой главе мы потратим довольно
много времени, показывая, как
избежать этих опасностей за счет
тщательного проектирования
иерархии наследования.
После описания
механики и основных принципов
наследования реализации мы во всех
подробностях изучим класс Object,
являющийся предком всех объектов .NET.
Завершая описание наследования
реализации, мы покажем, как в .NET
решается проблема неустойчивости
базовых классов, вызывающая
немало хлопот при наследовании
реализации в других объектно-ориентированных
языках — таких, как Java и С++. Не
пугайтесь термина «проблема
неустойчивости базовых классов»;
речь идет всего лишь о том, что
непродуманные изменения базового
класса могут нарушить работу
производных классов.
С этого
момента под термином «наследование»
будет пониматься наследование реа-лизации.
Если речь пойдет о программном коде,
использующем наследование
интерфейсов, мы будем употреблять
термин «реализация интерфейсов».
На первый взгляд терминология
кажется крайне запутанной, но
большинство программистов быстро
привыкают к этим сокращенным
обозначениям.
От наследования мы перейдем к реализации интерфейсов в VB .NET. В завершение этой главы вы узнаете, как использовать важнейшие интерфейсы .NET Framework IComparable, ICloneable и IDisposable.
Программисты
с опытом использования интерфейсов
BVB5 и VB6 будут приятно удивлены тем,
насколько понятнее выглядят
программы при реализации
интерфейсов в VB .NET. В синтаксисе
произошли заметные изменения к
лучшему.
![]() |
![]() |