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

Термех статика
Элементы кинематики
Основные понятия
сопративления материалов
Теория прочности
Интенсивность отказов
Типовые примеры и
их решения
Методы расчета
Прикидочный расчет
Ориентировочный расчет
Окончательный расчет
Общее резервирование
Раздельное резервирование
Скользящее резервирование
Последействие отказов
Системы передачи
информации
Понятие предела функции
Дифференцирование и
интегрирование функций
Применение пределов в
экономических расчетах
Интергал производная
геометрический смысл
Системы линейных уравнений
Элементы теории матриц
Дифференциальное и
интегральное исчисление
экстремум функции
Неопределенный интеграл
Функция нескольких переменных
Дифференциальные уравнения
первого порядка
Производные высших порядков
Свойства производных
Производная показательной
и логарифмической функции
Импульсы
асинхронная линия
уровни сигнала
избыточность
цифровой сигнал
прямая обработка
структуры циклов
стратегии поиска
добавочный канал
регенератор
Цикловая синхронизация
Проверка по избыточности
Скорость передачи
Ошибки
Ретроспективные выставки
Синхронная передача
Контроллеры и накопители
на жестких дисках
накопитель на жестком диске
плотность записи
Способы кодирования данных
Частотная модуляция
Форматирование дисков
Зонная запись
Форматирование высокого
уровня
Температурная нестабильность
Характеристики накопителей
Парковка головок
Интерфейсы накопителей
на жестких дисках
Кабели питания Disk Manager
интерфейс SCSI plug-and-play
Конфигурирование системы
дефекты
Разбиение жестких дисков
Коды аппаратных ошибок
Неисправен блок питания
Искусство Древнего Мира
Проектирование печатных плат
Visual Basic .NET
Выражения операторы
Классы и объекты
Наследование и интерфейсы
Обработка событий
Формы Windows
Многопоточные приложения
Взаимодействие операционной
системы
Операционная система Linux
Конфигурирование X Windows
Работа и конфигурирование
GNOME и X WINDOWS

В предыдущей главе кратко упоминались два столпа объектно-ориентированного программирования в VB .NET: наследование реализации, обеспечивающее возможность многократного использования кода, и наследование интерфейсов, то есть «контракт», которому должны соответствовать некоторые аспекты поведения класса. Обе разновидности наследования будут подробно рассмотрены в этой главе. Хотя наследование не является панацеей ООП и во многих ситуациях лучше воспользоваться интерфейсами, не стоит полагать, что без наследования можно как-нибудь обойтись. Обращение к функциональности базового класса Предположим, вы построили замечательную объектно-ориентированную систему учета кадров, в которой в полной мере используются все преимущества полиморфизма. А теперь попробуйте ответить на простой вопрос — как в вашей системе реализован считаются одним из сложнейших аспектов архитектуры приложения, о котором обычно никто всерьез не думает, пока ситуация не станет критической. На стадии проектирования наследственных связей в программе часто выясняется, что многие классы обладают целым рядом сходных черт. Например, внештатные сотрудники не относятся к постоянным работникам, но и те и другие обладают рядом общих атрибутов — именем, адресом, кодом налогоплательщика и т. д Метод ToString возвращает представление текущего объекта в строковом формате. Вопрос о том, будет ли это представление удобным при отладке и для пользователей, зависит от реализации класса. Вероятно, вы убедились в том, что наследование занимает важное место в VB .NET, но для полноценного использования объектно-ориентированных средств VB .NET вам также придется освоить реализацию интерфейсов. Этой важной теме посвящены несколько ближайших разделов. Нетривиальное применение интерфейсов Интерфейс ICollection определяется производным от IEnumerable; он дополняет этот интерфейс тремя свойствами, доступными только для чтения, и одним новым методом. Начнем с повторения некоторых терминов. Класс, взятый за основу при определении нового класса, называется базовым классом. Класс, определяемый на основе базового класса, называется производным классом. Переопределение свойств и методов При использовании классов коллекций .NET Framework (таких, как ArrayList и HashTable) возникает неожиданная проблема: эти классы предназначены для хранения обобщенного типа Object, поэтому прочитанные из них объекты всегда приходится преобразовывать к исходному типу функцией СТуре. MemberWiseClone Проблема несовместимости компонентов хорошо известна всем, кому доводилось программировать для Windows. Обычно она выступает в форме так называемого кошмара DLL (DLL Hell) — программа использует определенную версию DLL, a потом установка новой версии компонента нарушает работу программы Итак, как только вы загрузите старый исходный текст производного класса и создадите ссылку на новую DLL, вам не удастся откомпилировать программу до исправления той несовместимости, на которую вас обрекли разработчики базового класса. Механика реализации интерфейса Интерфейсы ICloneable и IDisposable обладают особой декларативной функцией — реализуя их, вы тем самым заявляете, что ваш класс обладает некой стандартной функциональностью, присутствующей во многих классах Интерфейс IDictionary представляет коллекцию, в которой доступ к данным осуществляется по ключу — как в хэш-таблицах, описанных в предыдущей главе. Обычно в программе создается отдельный класс, реализующий IComparer, и экземпляр этого класса передается методу Sort.

Интегрированная средой разработки Visual Basic .NET

Выражения, операторы и передача управления

Классы и объекты Отладка объектно-ориентированных программ

Обработка событий и делегаты Обработка ошибок в VB .NET

Формы Windows, графический вывод и печать

Многопоточные приложения Поддержка баз данных в VB .NET

Расчет характеристик надежности Надежность информационных систем Типовые примеры и их решения