рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ПОЛИМОРФИЗМ

ПОЛИМОРФИЗМ - раздел Программирование, ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ   Простой Полиморфизм. При Создании Иерархии Классов Может Обна...

 

Простой полиморфизм. При создании иерархии классов может обнаружиться, что некоторые свойства объектов, сохраняя название, изменяются по сути.

Для реализации таких иерархий в языке программирования должен быть предусмотрен полиморфизм, обеспечивающий возможность задания различных реализаций некоторого единого по названию метода для классов различных уровней иерархии. В ООП такой полиморфизм называется простым, а методы, имеющие одинаковое название, − статическими полиморфными.

Совокупность полиморфных методов с одним именем для иерархии классов образует единый полиморфный метод иерархии, в котором реализация полиморфного метода для конкретного класса представляет отдельный аспект.

Заметим, что термин «полиморфизм» в программировании, в соответствии со своим изначальным смыслом («многообразие»), используется для обозначения встроенного механизма определения соответствия кода функции типу параметров. Такой механизм реализуется не только в средствах ООП.

Различают несколько терминов, связанных с конкретными механизмами реализации полиморфизма для различных случаев.

Чистый полиморфизм − используется для обозначения того, что один код функции может по-разному интерпретироваться в зависимости от типа аргументов; используется в языках высокого уровня абстракции, например в языке LISP или SMALLTALK.

Перегрузка (полиморфные имена функций) − используется, когда определяется несколько функций с одним именем − одно и то же имя функции может многократно использоваться в разных местах программы; выбор нужной функции может определяться типами аргументов, областью видимости (внутри модуля, файла, класса и т.д.); если выбор определяется типом аргументов, то перегрузка называется параметрической; например язык C++ позволяет разработчику выполнять параметрическую перегрузку функций вне классов.

Переопределение (простой полиморфизм) − используется в ООП при наличии различных определений методов в иерархии классов, конкретный метод определяется типом объекта при компиляции программы {раннее связывание), методы называются статическими полиморфными.

Полиморфные объекты {сложный полиморфизм) − используются в ООП при наличии различных определений методов в иерархии классов − конкретный метод также определяется типом объекта, но в процессе выполнения программы {позднее связывание) методы называются виртуальными полиморфными (рассмотрены далее).

Обобщенные функции или шаблоны − используются в ООП при реализации в языке параметризованных классов (например, в C++), параметрами такого класса являются типы аргументов методов класса (рассмотрены далее).

Рассмотрим простой полиморфизм на примере − класс Окно_с_текстом.Пусть необходимо разработать на базе класса Окно класс Окно_с_текстом. Для этого к полям класса Окно необходимо добавить специальные поля для определения координат первой буквы текста − Xt, Yt и поле, содержащее сам текст − Text. Кроме этого, понадобится специальный метод, который будет обрабатывать сообщение «Нарисовать». Однако у нас уже существует родительский метод Изобразить, который обрабатывает это сообщение. Следовательно, необходимо заменить родительский метод методом потомка.

Механизм полиморфизма позволяет для класса-потомка Окно_с_текстом предусмотреть собственный метод Изобразить (см. рис. 18). Метод Инициализировать также должен быть переопределен, так как он должен инициализировать дополнительные поля класса.

Класс Окно_с_текстом - родитель: класс Окно:

поля Xt, Yt, Text

метод Инициализировать (aXl,aYl,aX2,aY2,aColor,

aXt, aYt, aText)

метод Изобразить

– Конец работы –

Эта тема принадлежит разделу:

ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ

На сайте allrefs.net читайте: "ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ"...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ПОЛИМОРФИЗМ

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

ВЫРАЖЕНИЯ
  Выражения состоят из операторов и операндов. Большинство операторов в Конструкторе являются бинарными, то есть содержат два операнда. Остальные операторы являются унарными и содержа

КОММЕНТАРИИ
  Часто бывает полезно вставлять в программу текст, который предназначается в качестве комментария только для читающего программу человека и игнорируется компилятором в программе. В C

ВЕТВЯЩИЕСЯ АЛГОРИТМЫ
Циклические и рекурсивные алгоритмы. Операторы циклов for, do, while. В процессе программирования часто возникает необходимость повторять многократно выполнять многократно один и тот же фрагмент пр

МАССИВЫ И РАБОТА С ФАЙЛАМИ
Объявления массивов и указателей. Массив представляет собой набор данных одного типа. Формат определения массива следующий: тип_данных имя_массива[размер_массива];  

УКАЗАТЕЛИ
  Указатель является переменной, которая содержит адрес другой переменной или функции. Описание указателя определяет тип данных, на которые ссылается указатель, оно имеет вид:

ОСВОБОЖДЕНИЕ ПАМЯТИ
При компиляции программы память компьютера разбивается на четыре области, содержащие код программы, глобальные данные, стек и динамически распределяемую память ( иногда ее называют heap – куча). He

СТРУКТУРЫ
  В отличие от массива, структура позволяет иметь смешанные атрибуты различных типов данных. Структура создается при помощи ключевого слова struct, за которым следует имя_типа (имя ст

ПЕРЕДАЧА СТРУКТУР В ФУНКЦИИ
В функцию информация о структуре может передаваться как по значению, так и по ссылке. В первом случае в функцию передается копия структуры, что может снизить эффективность программы. При передаче п

ОБЪЕДИНЕНИЯ
  Объединения – еще один тип данных, которые можно использовать различным образом. К примеру, некоторые данные в одном случае могут рассматриваться как целые, а в другом – как числа с

ИНКАПСУЛЯЦИЯ ИЛИ СКРЫТИЕ ДАННЫХ
  Понятие инкапсуляция означает, что функции элементы и структуры данных, определяющие некоторые свойства данного класса, рассматриваются в качестве единого целого. Это подразумевает

СКРЫТИЕ ДАННЫХ В ПОТОМКАХ
  При порождении потомка класса у вас есть выбор в определении типа элементов. По умолчанию элементы базового класса автоматически получают приватный тип, если только вы не захотите и

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
В первой главе был дан краткий экскурс в основы программирования на языке С++. Далее будет рассмотрено детальное описание объектно-ориентированных свойств языка. ООП появилось в результате

ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ
  В программировании существуют различные парадигмы, представляющие собой разные подходы к написанию программ. Большинство программистов знакомы лишь с немногими из них, это визуально

ОСНОВНЫЕ ПРИНЦИПЫ И ЭТАПЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
  В теории программирования ООП определяется технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из

ПРОГРАММИРОВАНИЯ
Язык считается объектно-ориентированным, если в нем реализованы первые четыре из рассмотренных выше семи принципов. Кроме этого, в теории программирования принято различать объектно-ориентированные

ИСПОЛЬЗОВАНИЕМ ООП
  Процесс разработки программного обеспечения с использованием ООП включает четыре этапа: анализ; проектирование; эволюция; модификация.

ОБЪЕКТНАЯ ДЕКОМПОЗИЦИЯ
  Как уже упоминалось выше, при использовании технологии ООП решение представляется в виде результата взаимодействия отдельных функциональных элементов некоторой системы, имитирующей

ОБЪЕКТЫ И СООБЩЕНИЯ
  В предыдущем разделе было показано, что под объектом применительно к ООП понимается отдельно реализуемая часть предметной области задачи. Разрабатываемая программа, таким образом, с

Конец описания.
  Создавая объекты типа Окно, инициализируя их в соответствии с условием и посылая им сообщение «Нарисовать окно», получим разные окна на экране, причем параметры этих окон будут хран

Конец описания.
  Как уже говорилось выше, объединение полей данных и процедур и функций, работающих с этими данными, в единый пакет при наличии специальных правил доступа к элементам пакета называет

НАСЛЕДОВАНИЕ
В ООП существует возможность конструирования новых более сложных классов из уже имеющихся посредством добавления полей и определения новых методов (принцип иерархичности). При этом исходный класс,

Конец описания.
  Класс Окно_меняющее_цвет содержит все поля родительского класса и все его методы. Дополнительно объекты типа Окно_меняющее_цвет могут менять цвет окна на указанный в сообщении «Изме

СОЗДАНИЕ ПОЛИМОРФНЫХ ОБЪЕКТОВ
  Полиморфными объектами или полиморфными переменными называются переменные, которым в процессе выполнения программы может быть присвоено значение, тип которого отличается от типа пер

КОМПОЗИЦИЯ
  Ранее было указано, что в результате объектной декомпозиции второго и более уровней могут быть получены объекты, находящиеся между собой в отношении включения (см. рис. 12). Классы

Конец описания.
  Метод Инициализировать, класса-потомок, при этом должен получить двойной список параметров по сравнению с методом Инициализировать класса-родитель. Первым набором инициализируются р

НАПОЛНЕНИЕ
  Включение объектов в некоторый класс можно реализовать и с использованием указателей на эти объекты. В отличие от объектного поля, которое включает в класс точно указанное количеств

ТЕХНОЛОГИЯ ООП ПРОГРАММИРОВАНИЯ
  В соответствии с обычным значением слова «технология» под технологией программирования будем понимать совокупность производственных процессов, приводящую к созданию требуемог

ПРОГРАММНЫХ СРЕДСТВ
Окружающий нас мир состоит из объектов и отношений между ними. Согласно данным словаря В. Даля объект (предмет) - это все, что представляется чувствам (объект вещественный) или уму (объект умственн

К РАЗРАБОТКЕ ПРОГРАММНОГО СРЕДСТВА
При объектном подходе этап внешнего описания ПС оказывается существенно более емким и содержательным по сравнению с реляционным подходом. Определение требований заключается в неформальном описании

МЕТОДЫ КОНТРОЛЯ КАЧЕСТВА
  Как контролировать качество системы? Как точно узнать, что программа делает именно то, что нужно, и ничего другого? Как определить, что она достаточно надежна, переносима, удобна в

ОШИБКИ В ПО
  Ошибками в ПО, вообще говоря, являются все возможные несоответствия между демонстрируемыми характеристиками его качества и предписанными требованиями и, иногда, ожиданиями по

К главе 1
  1.1 Какие типы данных поддерживает С++? 1.2 Из каких компонент состоит выражение С++? 1.3 Какие виды арифметических операторов вы знаете?

К главе 2
  2.1 Какие парадигмы программирования вы знаете? 2.2 Поясните архитектуру процедурного программирования. 2.3 Поясните архитектуру модульного програ

К главе 3
  3.1 Что такое программная инженерия? 3.2 Что такое программное средство (ПС)? 3.3 Что такое ошибка в ПС? 3.4 Что такое надежность

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги