Наследование - Объектно-ориентированный подход и диаграммы классов в UML
Наследование - это отношение типа общее-частное между элементами модели.
Наследование пакетов означает, что в пакете-наследнике все сущности пакета-предка будут видны под своими собственными именами (т. е. пространства имен объединяются). На практике наследование пакетов применяется достаточно редко (в Rational Rose (классическая реализация UML) такая возможность не поддерживается).
Наследование показывается сплошной линией, идущей от конкретного элемента к более общему (в терминологии ООП - от потомка к предку, от сына к отцу, или от подкласса к суперклассу). Со стороны более общего элемента рисуется большой полый треугольник.
Один из атрибутов отношения наследования - дискриминатор (discriminator) - строка, задающая имя группы потомков [5], [2]. Его использование полезно, если у данного класса много потомков, и мы хотим разбить их на несколько групп. Отсутствие дискриминатора означает, что дискриминатор - пустая строка (дискриминатор по умолчанию). Изображается дискриминатор текстовой строкой, стоящей возле линии наследования.
Способ изображения наследования показан на следующем рисунке:
На рис. 12 geometry - это дискриминатор, а {disjoint} - его дополнительное свойство, на описании которого мы остановимся ниже.
Остановимся на понятии множественного наследования. Возвращаясь к примеру, с которого мы начинали эту статью, можно сказать, что Телевизор (как класс, а не как отдельный представитель) наследуется от классов Деревянный_Ящик и Устройство_Отображения (см. рисунок 14). При этом класс Устройство_Отображения инкапсулирует стандартную электронную начинку, а класс Деревянный_Ящик - только физическую оболочку. Во многих современных языках программирования множественное наследование запрещено. Связано это со следующей проблемой. Представим себе, что класс A наследуется от классов B и C, а классы B и C, в свою очередь, имеют общего предка D (см. рис. 13). Такая ситуация называется перекрывающимся наследованием. Какой из экземпляров D будет храниться в экземпляре A? Для решения этой проблемы была разработана концепция виртуального наследования, обеспечивающая единственность экземпляра класса D в памяти. Но ее использование небезопасно и нетривиально.
Для того чтобы уточнить подробности, касающиеся множественного наследования, на дискриминатор могут накладываться дополнительные ограничения (constraint):
- - disjoint - запрещение множественного наследования; - overlapping - разрешение множественного наследования.
В контексте рисунка 12 первое свойство означает, что нельзя в множественном наследовании использовать двух потомков класса figure, если они произведены от него через ветку наследования, помеченную дискриминатором geometry. (На рисунке 15 показана неправильна ошибочная ситуация.) Если бы этот дискриминатор имел свойство {overlapping}, то это было бы возможно.(На рисунке 13 показана ситуация, невозможная для наследования со свойством {disjoint}, но возможная для случая {overlapping}.) По умолчанию дискриминатор имеет свойство {overlapping}
Для дискриминатора можно указать дополнительные ограничения, не касающиеся множественного наследования:
- - Complete (полный) - все потомки рассматриваемого класса определены (возможно, не показаны на данной диаграмме), и список потомков не может быть расширен; - Incomplete (неполный) - возможно появление новых классов-потомков.
В примере на рис. 16 запрещено наследование новых классов от класса CHttpServer:
Похожие статьи
-
Атрибут - Объектно-ориентированный подход и диаграммы классов в UML
Атрибут (attribute) - это инкапсулируемый элемент данных класса, т. е. элемент данных, который содержится в объекте, принадлежащем описываемому классу. У...
-
Операция - Объектно-ориентированный подход и диаграммы классов в UML
Операция (operation) - это сущность, определяющая некоторое действие, которое может быть выполнено представителем класса. У операции есть имя и список...
-
Ассоциация, Бинарная ассоциация - Объектно-ориентированный подход и диаграммы классов в UML
Ассоциация определяет некоторую связь между классами. Когда в системе будут созданы представители ассоциированных классов, они будут связаны так, как...
-
Стадии разработки ПО - Объектно-ориентированный подход и диаграммы классов в UML
В [4] так определяются этапы объектно-ориентированного подхода к разработке ПО: Объектно-ориентированный анализ (analysis) - способ анализа, изучающий...
-
Основные принципы Первая и главная идея, лежащая в основе объектно-ориентированного подхода такова: программная система представляется в виде множества...
-
Утилиты, Объект - Объектно-ориентированный подход и диаграммы классов в UML
В некоторых случаях при описании классов приходится часто пользоваться некоторыми глобальными функциями и переменными. Поэтому для удобства...
-
Параметризованные классы (шаблоны) - Объектно-ориентированный подход и диаграммы классов в UML
В некоторых случаях в модели необходимы классы со схожей структурой, которые отличаются некоторыми параметрами. Например, имеется описание нескольких...
-
Класс ассоциации, Агрегирование - Объектно-ориентированный подход и диаграммы классов в UML
Такой класс является обычным классом, присоединенным пунктирной линией к ассоциации. Его имя должно совпадать с именем ассоциации. Содержащаяся в нем...
-
Введение - Объектно-ориентированный подход и диаграммы классов в UML
Психологи уже давно показали, что средний человек может одновременно воспринимать адекватно в пределах десятка единиц информации. Таким образом, при...
-
Зависимость - Объектно-ориентированный подход и диаграммы классов в UML
В некоторых случаях два и более элемента модели могут быть семантически связаны. Например, класс A использует методы класса B. Тогда при изменении класса...
-
Цель Работы - изучить одну из базовых концепций ООП, наследование классов в С++, заключающуюся в построении цепочек классов, связанных иерархически,...
-
Заключение - Объектно-ориентированный подход и диаграммы классов в UML
В заключение скажем несколько слов о применении модели классов UML. Особое место этой модели среди других моделей UML определяется тем, что основная цель...
-
Диаграмма классов, Разработка пользовательского интерфейса - Основы технологии программирования
На основе построенных диаграмм взаимодействия и переходов состояний можно построить диаграмму классов информационной системы. Рис. 5 Диаграмма классов...
-
ER - диаграмма базы данных была представлена на рис. 2. Рис.2. ER-диаграмма базы данных. Таблица admin - содержит два столбца login и password которые...
-
Объект ориентированный класс программирование Цель Работы - изучить методику создания одномерных динамических символьных массивов при помощи...
-
Объектно-ориентированная модель - Система управления базами данных
В объектно-ориентированной модели при представлении данных имеется возможность идентифицировать отдельные записи базы данных. Между записями и функциями...
-
Описание состава автоматизируемых бизнес-процессов Бизнес-процессы компании, подлежащие автоматизации, приведены в следующей таблице: Название...
-
Сохранение проекта Возможны как минимум три варианта: 1. Меню File, строка Save All с подсказкой горячих клавиш Shift+Ctrl+S; 2. Щелкнуть по иконке двух...
-
- замечания, нужно запомнить. Знакомство со средой DELPHI Для загрузки Delphi нужно запустить файл Delphi32.exe из папки Bin каталога Delphi7. Можно...
-
Объектно - ориентированное программирование - Модульное и объектно-ориентированное программирование
Объектно-ориентированное программирование является в настоящее время наиболее популярной технологией программирования. Объектно-ориентированными языками...
-
В ходе разработки программы было использовано программное обеспечение Microsoft® Windows® "Подключение к удаленному рабочему столу" для извлечения...
-
Запуск модели, Графики и диаграммы - Построение модели сердца
Щелкнув на кнопке запуска модели, после компиляции откроется окно презентации эксперимента. Запустив эксперимент, увидим структуру активного объекта:...
-
Построение ER диаграмм - Модернизация структуры базы данных на основе анализа требований предприятия
При построении моделей информационных систем важнейшей методикой является ER-моделирование или построение диаграмм сущность-связь. Сущность представляет...
-
UML - унифицированный язык моделирования, призванный упростить построение больших информационных систем. Состоит из диаграмм, связей и сущностей....
-
BPMN диаграмма - Инженерия программного обеспечения. Регистрация пассажира на рейс авиакомпании
Основная цель BPMN -- создание стандартного набора условных обозначений, понятных всем бизнес-пользователям. Бизнес-пользователи включают в себя...
-
Постановка задачи, Подход к реализации - Обьекто-ориентированное программирование
Создать класс Triangle для представления треугольника. Поля класса - длины сторон. Требуется реализовать операции: вычисления углов треугольника,...
-
Наглядно модель данных целесообразно представить себе в виде двух взаимосвязанных фазовых (т. е. абстрактных) пространств, в первом из которых осями...
-
Среда объектно-ориентированного программирования Delphi Delphi - это комбинация нескольких важнейших технологий, высокопроизводительный компилятор в...
-
Описание классов и методов - Обзор проблематики и теоретических основ электронного документооборота
В данной работе реализован один публичный класс Form1, в котором и происходит основной функционал программы, посредством выполнения методов по кнопкам....
-
Класс "HotelBDAddUser" - База данных отеля
Является визуальным классом, содержащим оконный пользовательский интерфейс (рис.11). Рис.11 Связи. 1. Связь "событие-действие" между событием "clicked"...
-
Переход от концептуальной модели к объектной - База данных отеля
Элемент Концептуальной модели Элемент объектной модели Объект: БД Невизуальный класс HotelBDCore. Объект: Администратор Пользователь системы. В объектной...
-
Процедура Click для кнопки ОПРЕДЕЛИТЬ с дополнительным заданием Procedure TForm1.Button1Click(Sender: TObject); Begin A := strtofloat(edit1.Text); {...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Проектирование класса - Разработка программы на языке C++, реализующей игру "Морской бой"
В данной курсовой работе были созданы следующие классы: Kletka - класс клетка: Свойства: - Pustaya_kletka - пустая или не пустая клетка, - Vistrel -...
-
В данной главе будет рассмотрена ИТ-консалтинговая компания, проект, который она реализует и апробирован подход, описанный во второй главе работы. То...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Прямая витая пара класса 5e Таблица 4 Характеристики прямой витой пары класса 5е Максимальная частота, МГц 100 Поддерживаемые стандарты Fast...
-
Каждая диаграмма состояний в UML описывает все возможные состояния одного экземпляра определенного класса и возможные последовательности его переходов из...
-
ClassBase_Korabl {:Color;:_Korabl();Prorisovka(short x, short y); } В этом листинге в производном классе был переопределен метод Prorisovka() для...
-
Синтаксис объявления класса в языке С++ имеет следующий вид: Class<имя класса>: <спецификатор доступа><имя базового класса> { Элементы класса...
Наследование - Объектно-ориентированный подход и диаграммы классов в UML