Лабораторная работа №9
Тема: Базовый механизм наследования. Работа с матрицами.
Цель: изучение концепции наследования в ООП и его применение для организации работы с матрицами, освоить технологию перегрузки операторов
Теоретические положения
Базовый механизм наследования
Наследование— это аспект ООП, облегчающий повторное использование кода. Существует в двух видах: классическое наследование (отношение "является" – is-a) и модель включения-делегирования (отношение "имеет" – has-a).
Модель включения-делегирования будет рассмотрена в лабораторной работе №12. Здесь рассмотрим классическую модель наследования типа "является". При установке между классами такого отношения строится зависимость между двумя или более типами классов. Базовая идея, лежащая в основе классического наследования заключается в том, что новые классы могут использовать (и, возможно, расширять) функциональность существующих классов.
Спецификация родительского класса
Теперь предположим, что планируется построить новый класс по имени TimeStarting (время отправления). Подобно базовому классу Time, необходимо, чтобы TimeStarting поддерживал шесть полей данных даты и времени и соответствующие свойства, позволяющее пользователю модифицировать состояние объекта. Ясно, что классы Time и TimeStarting взаимосвязаны; фактически можно сказать, что TimeStarting "является" Time. Отношение "является" (формально называемое классическим наследованием) позволяет строить новые определения классов, расширяющие функциональность существующих классов.
Существующий класс, который будет служить основой для нового класса, называется базовым или родительским классом. Назначение базового класса состоит в определении всех общих данных и членов для классов, которые расширяют его. Расширяющие классы формально называются производными или дочерними классами. В С# для установки между классами отношения "является" используется операция двоеточия в определении класса:
class имя_класса_потомка:имя_базового_класса{ // тело класса}Имеют место следующие отличия в механизме наследования C# от С++:
- В качестве базового класса при наследовании может быть указан только один класс. Это означает, что в C# нет механизма множественного наследования. Если же необходимо выполнить его, то применяется механизм интерфейсов.
- При наследовании не указываются спецификаторы доступа как в C++.
Дата добавления: 2021-12-14; просмотров: 275;