→ Объектно-ориентированное программирование (ООП): полиморфизм. Полиморфизм - что это? Генетический полиморфизм 14 полиморфизм и его использование в программах

Объектно-ориентированное программирование (ООП): полиморфизм. Полиморфизм - что это? Генетический полиморфизм 14 полиморфизм и его использование в программах

ПОЛИМОРФИЗМ в генетике (греч, polymorphos многообразный) - термин, обозначающий проявление индивидуальной, прерывистой изменчивости живых организмов. Первоначально он широко использовался для обозначения любой прерывистой изменчивости внутри вида (напр., каст общественных насекомых, возрастных отличий в окраске, полового диморфизма и др.), однако позже такие различия стали называть полифенизмом, а термином «полиморфизм» в соответствии с определением, данным английским генетиком Фордом (E. В. Ford), обозначать наличие в одной и той же популяции двух или более хорошо различимых форм, способных появляться в потомстве одной самки и встречающихся с частотой, достаточно высокой для того, чтобы исключить поддержание самой редкой из них повторно возникающими мутациями. Понятие «полиморфный» следует также отличать от понятия «политипический», к-рое обозначает сложные таксономические категории (напр., политипический вид - вид, представленный двумя или более подвидами, и т. п.).

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

П. затрагивает любые особенности фенотипа на любом уровне, в т. ч. на клеточном и молекулярном. Напр., хорошо известен П. эритроцитарных антигенов у человека (группы крови), структуры хромосом - инверсии, дупликации, добавочные хромосомы (см. Хромосомный полиморфизм).

В конце 60-х - начале 70-х гг. 20 в. благодаря разработке чувствительных методов, гл. обр. различных методов электрофореза (см.), в популяциях животных и человека обнаружен еще более широкий П. по генам, ответственным за синтез белков крови и других тканей, который присущ почти трети всех изученных генных локусов, кодирующих синтез белков как ферментной, так и неферментной природы (см. Изоферменты).

Биол, значение такой широкой наследственной изменчивости популяций и видов до конца не расшифровано, и по этому вопросу существует две точки зрения. Согласно одной из них биохим. П. поддерживается в популяциях благодаря отбору, т. е. имеет приспособительное значение, согласно другой - биохим. П. должен быть отнесен к категории селективно-нейтральной изменчивости. Тем не менее существует множество достоверных фактов, свидетельствующих об исключительном значении явления генетического П. для биологии и медицины. Постоянное присутствие в популяции с достаточно высокой частотой двух или более дискретных форм - генотипов (см.) - означает, что такой П. поддерживается за счет преимущественного отбора гетерозигот. Примером этого может служить полиморфизм гемоглобина, широко распространенный в популяциях людей азиатского и африканского происхождения и приводящий к заболеванию, известному под названием серповидно-клеточной анемии (см.). Анемия связана с гомозиготностью по гену s, который обусловливает образование аномального гемоглобина. Гомозиготы ss погибают вскоре после рождения. Однако стало известно, что высокая частота этого гена в популяциях сохраняется благодаря тому, что гетерозиготы Ss менее поражаются малярией, чем гомозиготы SS. В условиях постоянного присутствия в окружающей среде возбудителя малярии в популяциях поддерживается устойчивое соотношение всех трех генотипов - SS, Ss и ss, так наз. сбалансированный полиморфизм.

Аналогичный или похожий механизм лежит в основе поддержания П. групп крови и различных белков в популяциях человека, что наряду с другими доказательствами подтверждается также открытием корреляции (ассоциаций) между той или иной группой крови и устойчивостью к определенным заболеваниям. Напр., среди больных язвой желудка и двенадцатиперстной кишки группа крови О встречается соответственно на 10 и 17% чаще, чем среди остальной части популяции. Частота группы крови А достоверно выше у больных нек-рыми формами анемии и сахарного диабета. Недавно показана также определенная роль полиморфизма тканевых антигенов в устойчивости организма человека к нек-рым заболеваниям.

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

Т. о., хотя не все в явлении генетического П. окончательно выяснено, его анализ позволяет изучать генетические процессы в популяциях различных видов животных и человека и решать важные вопросы, связанные с их происхождением, эволюцией и адаптацией к окружающей среде. Генетический П. позволяет также использовать группы крови и электрофоретические варианты белков в качестве генетических маркеров для решения ряда задач судебной медицины (напр., при идентификации генотипов с помощью исследования образцов крови и других биол, жидко-тей, при доказательстве монозигот-ности близнецов, при решении вопросов о спорном отцовстве и др.), для составления оптимальных схем трансплантации органов и тканей, для обнаружения связей между генотипом и устойчивостью к различным заболеваниям. Следует, однако, указать, что генетическое «содержание» вида не сводится к одной лишь изменчивости и что наряду с П. необходимо учитывать явление генетического мономорфизма, когда вид в целом представлен лишь одним, преобладающим генотипом, а частота вариантных форм не превышает вероятности повторного мутирования.

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

ПОЛИМОРФИЗМ в патологии

ПОЛИМОРФИЗМ в патологии (греч. polymorphos многообразный) - многообразие структурных проявлений патологического процесса в органах, тканях и клетках.

В общей патологии П. наблюдается при компенсаторно-приспособительных процессах, возникающих на различных этапах развития болезни. Компенсаторные процессы (см.) весьма разнообразны и обычно развиваются в отдельных системах, органах и тканях организма. Напр., при регенерации костной ткани в зоне перелома костная мозоль может быть представлена как волокнистой соединительной тканью, так и костно-хрящевыми структурами. Кроме того, П. отмечается при метаплазии тканей (см. Метаплазия) и в процессе организации (см.). В частной патологии П. проявляется в изменчивости морфол, картины ряда заболеваний (туберкулеза, крупозной пневмонии и др.) под влиянием естественных и индуцированных факторов (см. Патоморфоз). В частности, течение крупозной пневмонии может начинаться со стадии красного опеченения или серого опеченения, а в нек-рых случаях она носит мигрирующий характер. Чаще понятие «полиморфизм» используют для морфол, характеристики опухолевого роста.

Различают тканевой, клеточный и ядерный П. Тканевой П., характеризующийся различным соотношением паренхимы и стромы, встречается, напр., в условиях хрон, воспаления, при к-ром вследствие дистрофии (см. Дистрофия клеток и тканей) и регенерации (см.) выявляются разнообразные клеточные элементы, большее или меньшее количество сосудов различного калибра. Тканевой П., напр, при циррозе печени, проявляется развитием неравномерных прослоек фиброзной ткани, среди к-рых располагаются скопления гепатоцитов различной величины и формы. При микроскопическом исследовании опухолей, напр, аденокарциномы, обнаруживают железистые комплексы различной величины и формы. Так, при раке предстательной железы величина железистых комплексов варьирует в широких пределах, форма их разнообразна, часто с фестончатыми очертаниями и многочисленными бухтообразными выпячиваниями. Значительным разнообразием величины и формы обладают тяжи и гнезда опухолевых клеток при плоскоклеточном раке.

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

Для ядерного П. характерно появление ядер различной величины и формы, различных патол, форм кариокинеза. Так, в опухолевых клетках ядро может занимать почти всю цитоплазму или в части случаев бывает резко уменьшено в размерах. В связи с нарушениями митоза (см.) возникают гигантские многоядерные клетки. Ядра нек-рых клеток интенсивно окрашиваются, становятся гиперхромными. При гидропической дистрофии ядра клеток увеличены в объеме, округлой формы, с разреженной нуклеоплазмой. Иногда в ядрах имеют место признаки пикноза (см.). В условиях регенерации ядра могут приобретать неправильные очертания, в них отмечается перераспределение хроматина (см.). Часто в условиях регенерации и патологии обнаруживается П. внутриклеточных структур, таких как митохондрии (см.), эндоплазматическая сеть, лизосомы (см.).

ПОЛИМОРФИЗМ в химии

ПОЛИМОРФИЗМ в химии (греч. polymorphous многообразный) - способность одного и того же химического соединения или элемента образовывать в зависимости от внешних условий (температуры, давления и др.) различные кристаллические формы (модификации). П. объясняют способностью одних и тех же атомов или молекул образовывать различные кристаллические решетки, отличающиеся своей устойчивостью. Явление П. в химии открыто Мичерлихом (E. Mitscherlich) в 1821 г. П. наблюдается для простых веществ (так наз. аллотропия), для многих органических и неорганических соединений, а также для минералов. Примерами аллотропных простых веществ могут служить алмаз и графит, белый и фиолетовый (красный) фосфор и др. Примером П. хим. соединений могут служить кальцит и арагонит - полиморфные модификации карбоната кальция. Известны два основных вида П.: энантиотро-пия (обратимые превращения) и мо-нотропия (необратимые превращения).

Вещества, находящиеся в различных полиморфных модификациях, обладают разными физ.-хим. свойствами и разной биол, активностью; напр., рост гемофильных бактерий на синтетической среде, заменяющей кровь, происходит при наличии в среде гамма-Fe 2 O 3 , а в присутствии aльфа-Fe 2 O 3 бактерии погибают.

Библиография:

полиморфизм в генетике

Алтухов Ю. П. и Рычков Ю. Г. Генетический мономорфизм видов и его возможное биологическое значение, Журн. общ. биол., т. 33, № 3, с. 281, 1972; Бочков Н. П. Генетика человека, М., 1978; Майр Э. Популяции, виды и эволюция, пер. с англ., М., 1974; Харрис Г. Основы биохимической генетики человека, пер. с англ., М., 1973; Эрлих П. и Холм Р. Процесс эволюции, пер. с англ., М., 1966; С a v а 1 1 i - S f о г z a L. L. a. Bod- ш e г W. F. The genetics of human populations, San Francisco, 1971; Ford E. B. Polymorphism and taxonomy, в кн.: The new systematics, ed. by J. Huxley, p. 493, L., 1941.

полиморфизм в патологии

Давыдовский И. В. Общая патология человека, с. 506, М., 1969; С т р у к о в А. И. и Серов В. В. Патологическая анатомия с. 159, М., 1979.

полиморфизм в химии

Некрасов Б. В. Учебник общей химии, с. 382, М., 1981; Не-н и ц e с к у К. Общая химия, пер. с румын., с. 130, М., 1968.

Ю. П. Алтухов (полиморфизм в генетике), Г. М. Могилевский (полиморфизм в патологии),

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

Большой запас

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

Как все начиналось?

Генетика стала бурно развиваться в 60-е годы прошлого столетия, именно тогда стал применяться или ферментов в геле, который позволил определить генетический полиморфизм. Что это за метод? Именно при помощи него вызывается перемещение белков в электрическом поле, которое зависит от размера перемещаемого белка, его конфигурации, а также суммарного заряда в разных участках геля. После этого, в зависимости от расположения и числа пятен, которые появились, проводится идентификация определившегося вещества. Чтобы оценить полиморфизм белка в популяции, стоит исследовать приблизительно 20 или большее количество локусов. Затем с использованием математического метода определяется количество а также соотношение гомо- и гетерозигот. По данным исследований, одни гены могут быть мономорфными, а другие - необычайно полиморфными.

Виды полиморфизма

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

Генный и хромосомный полиморфизм

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

Переходный полиморфизм

Переходный полиморфизм возникает в том случае, когда в популяции происходит замещение аллеля, который когда-то был обычным, другим, который обеспечивает своего носителя большей приспосабливаемостью (это также называется множественным аллелизмом). При данной разновидности есть направленный сдвиг в процентном содержании генотипов, за счет него происходит эволюция, и осуществляется ее динамика. Явление индустриального механизма может стать хорошим примером, который охарактеризует переходный полиморфизм. Что это такое, показывает простая бабочка, которая с развитием промышленности сменила белый цвет своих крыльев на темный. Данное явление начали наблюдать в Англии, где более чем 80 видов бабочек из бледно-кремовых цветов стали темными, что впервые подметили после 1848 года в Манчестере в связи с бурным развитием промышленности. Уже в 1895 году более 95% пядениц приобрели темную окраску крыльев. Связаны такие перемены с тем, что стволы деревьев стали более закопченными, и светлые бабочки стали легкой добычей дроздов и малиновок. Перемены произошли за счет мутантных меланистических аллелей.

Сбалансированный полиморфизм

Определение "полиморфизм сбалансированный" характеризует отсутствие сдвига любых числовых соотношений различных форм генотипов в популяции, которая находится в стабильных условиях среды обитания. Это означает, что из поколения в поколение соотношение остается одним и тем же, но может незначительно колебаться в пределах той или иной величины, которая является постоянной. В сравнении с переходным, сбалансированный полиморфизм - что это? Он в первую очередь является статикой эволюционного процесса. И. И. Шмальгаузен в 1940 году дал ему также название равновесного гетероморфизма.

Пример сбалансированного полиморфизма

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

Другим примером может стать групповая принадлежность крови по системе АВ0. В этом случае частота различных генотипов в различных популяциях может быть различной, но наравне с этим из поколения в поколение она не меняет своего постоянства. Проще говоря, ни один генотип не имеет селективного преимущества перед другим. По данным статистики, мужчины, имеющие первую группу крови, имеют большую ожидаемую продолжительности жизни, чем остальные представители сильного пола с другими группами крови. Наравне с этим, риск развития язвенной болезни 12-перстной кишки при наличии первой группы выше, но она может перфорироваться, и это станет причиной смерти в случае позднего оказания помощи.

Генетическое равновесие

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

Большинство случаев показывают, что ценность таких генов менее единицы, а в случае неспособности таких мутантов к размножению и вовсе все сводится к 0. Мутации такого рода отметаются в процессе естественного отбора, но это не исключает неоднократное изменение одного и того же гена, что компенсирует элиминацию, которая осуществляется отбором. Тогда достигается равновесие, мутировавшие гены могут появляться или, наоборот, исчезать. Это приводит к сбалансированности процесса.

Пример, который может ярко охарактеризовать происходящее, - серповидноклеточная анемия. В данном случае доминантный мутировавший ген в гомозиготном состоянии способствует ранней гибели организма. Гетерозиготные организмы выживают, но они более восприимчивы к заболеванию малярией. Сбалансированный полиморфизм гена серповидноклеточной анемии можно проследить в местах распространения данного тропического заболевания. В такой популяции гомозиготы (особи с одинаковыми генами) элиминируются, наравне с этим действует отбор в пользу гетерозигот (особей с разными генами). За счет происходящего разновекторного отбора в генофонде популяции происходит поддержание в каждом поколении генотипов, которые обеспечивают лучшую приспосабливаемость организма к условиям среды обитания. Наравне с наличием гена серповидноклеточной анемии в есть и другие разновидности генов, характеризующие полиморфизм. Что это дает? Ответом на этот вопрос станет такое явление, как гетерозис.

Гетерозиготные мутации и полиморфизм

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

эволюционного процесса

Эволюционный процесс является непрерывным, и обязательным его условием есть полиморфизм. Что это - показывает постоянная приспосабливаемость той или иной популяции к среде своего обитания. Разнополые организмы, которые обитают в пределах одной группы, могут быть в гетерозиготном состоянии и передаваться из поколения в поколение на протяжении многих лет. Наравне с этим фенотипического проявления их может и не быть - за счет огромного запаса генетической изменчивости.

Ген фибриногена

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

Лекция в виде презентации в формате pdf с примерами - 27 слайдов.
ВолгГТУ, кафедра ПОАС, - 2010 год

В лекции рассмотрены все формы полиморфизма функций и методов т представлена их иерархия в виде схемы.

Фрагменты из лекции

Понятие полиморфизма

  • Полиморфизм в языке программирования означает многозначность переменных и функций
  • Полиморфной функцией является такая функция, которая может вызываться с аргументами различного типа, а фактический выполняемый код зависит от типа аргументов

Преимущества использования полиморфизма

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

Параметризованный полиморфизм

  • Обеспечивается за счет так называемых обобщенных функций, которые в языке Си++ называются шаблонами
  • Аргументом обобщенной функции является тип, который используется при ее параметризации
  • С помощью механизма шаблонов можно создать функцию, которая бы работала с разнотипными аргументами
  • Примером таких функций являются обобщенные алгоритмы из STL

Чистый полиморфизм

  • Чистый полиморфизм имеет место, когда одна и та же функция применяется к аргументам различных типов
  • В случае чистого полиморфизма имеется одна функция (тело кода) и несколько ее интерпретаций
  • Реализация чистого полиморфизма возможна только при наличии полиморфных переменных, а точнее полиморфных аргументов
  • Чистый полиморфизм позволяет реализовывать обобщенные алгоритмы
Перегрузка или полиморфизм ad hoc
  • Перегрузка возникает, когда имеется два или более кода, связанных с одним именем
  • Главное назначение перегрузки − сужение концептуального пространства
Перегрузка методов в несвязанных классах
  • Все ОО-языки разрешают использовать методы с одинаковыми именами в несвязанных между собою классах − это перегрузка методов
  • В этом случае привязка перегруженного имени производится за счет информации о классе, к которому относится получатель сообщения

Параметрическая перегрузка

  • Стиль перегрузки, при котором функциям и методам в одном и том же контексте разрешается использовать совместно одно имя, а двусмысленность снимается за счет анализа числа и типов аргументов, называется параметрической перегрузкой.
Замещение методов
  • Замещение возникает, когда в базовом и производном классах имеются два метода с одинаковым именем и параметрами
  • В этом случае метод базового класса перекрывается методом производного класса с точки зрения пользователя класса
Назначение механизма замещения методов
  • Замещение происходит прозрачно (незаметно) для пользователя класса, и, как в случае перегрузки, два метода представляются семантически как одна сущность
  • Главное назначение замещения методов − сужение концептуального пространства
Пример замещения метода

Class MyEllipse
{
public:
float area() const

};


{
public:
float area() const
{//использ. более эффективный алгоритм расчета
}
};

MyEllipse ellipse;
MyCircle circle;

// Будет вызван метод MyEllipse::area()
ellipse.print();


// ВНИМАНИЕ!!! Будет вызван метод MyEllipse::area()
circle.print();


Переопределение методов
  • При замещении метод базового класса перекрывается методом производного класса только снаружи. Внутри класса вызывается метод базового класса (см. предыдущий пример)
  • Переопределение метода возникает, когда метод производного класса подменяет метод базового класса не только снаружи, но и внутри класса
  • В языке Си++ для переопределения метода необходимо использовать механизм динамического связывания, т.е. объявить метод виртуальным
Пример переопределения метода

Class MyEllipse
{
public:
virtual float area() const
{ /* численный метод расчета */ }
void print() { printf("area = %f\n", area()); }
};
class MyCircle: public MyEllipse
{
public:
float area() const
{ //использ. более эффективн. алгоритм расчета
return 3.14*Radius1*Radius2;
}
};

MyEllipse ellipse;
MyCircle circle;

// Будет вызван метод MyEllipse::area()
printf("Ellipse area= %f\n", ellipse.area());

// Будет вызван метод MyEllipse::area()
ellipse.print();

// Будет вызван метод MyCircle::area()
printf("Circle area= %f\n", circle.area());

// ВНИМАНИЕ!!! Будет вызван метод MyCircle::area()
circle.print();

Назначение механизма переопределения методов
  • Наличие механизма переопределения методов позволяет реализовать в базовом классе общую часть поведения, подразумевая, что отдельные действия будут доопределены (переопределены) в производных классах
  • Таким образом, главное назначение механизма переопределения методов - сокращение объема программы

Отложенные методы

  • Отложенный метод − это частный случай переопределения, когда метод базового класса не имеет реализации, а любая полезная деятельность задается в методе дочернего класса
Отложенные методы в языке Си++
  • В языке Си++ отложенный метод должен быть описан в явном виде с ключевым словом virtual
  • Тело отложенного метода не определяется, вместо этого функции «приписывается» значение 0

Полиморфизм – это принцип ООП, который позволяет использовать один интерфейс и разные алгоритмы. Целью полиморфизма, применительно к ООП, является использование одного имени для задания разных действий. Выполнение действия будет определяться типом данных.

Виды полиморфизма:

Статический (определяется во время компиляции). Перегрузка функций, методов, операторов и т.д.

Динамический (определяется во время выполнения). Содержит виртуальные функции и методы.

22. Наследование как механизм реализации полиморфизма, создания иерархий классов. Типы наследования.

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

Типы наследования: прямое и косвенное, простое и множественное.

23. Классы. Базовые, производные, полиморфные, абстрактные, виртуаль-ные. Примеры.

Класс – особый тип данных, в котором описываются и атрибуты данных и действия, выполняемые над атрибутами.

Базовый класс – класс, члены которого наследуются.

Производный класс – класс, который наследует чужие члены.

Полиморфный класс – класс, содержащий виртуальные методы.

Абстрактный класс – класс, содержащий чисто виртуальные методы.

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

24. Принципы раннего и позднего связывания.

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

Ранее связывание - установка таких связей до начала выполнения программы. Обычно под этим понимается связывание в процессе компиляции исходных модулей и компоновки исполняемого модуля из объектных.

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

25. Использование языка uml для спецификации

26. Описание иерархий классов диаграммами uml.

Отношения классов через . И показать разные отношения: прямое, косвенное, множественное.

27. Классы-шаблоны. Описание в uml.

Шабло́н класса - средство языка C++, предназначенное для кодирования обобщённых алгоритмов классов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).

Синтаксис:

template

class NAME_CLASS

NAME_CLASS B; //Вызов

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

Собственно, представим себе рядом стакан, кружку, чайник, кофемашину, велосипед и скейт. Что между ними всеми общего? Ну как минимум то, что они есть. То есть это - объекты, которые были созданы. Но как они были созданы? Скорее всего на заводе производителя по чертежам. Ок, чертежём назовём конструктор. Ну а класс? А что это такое? А его нет в нашей вселенной - эта сущность есть абстракция, что живёт лишь в наших мыслях. В реальном мире её нет и никогда не будет, такова уж физика - ей по барабану, что птицы и млекопитающие имеют дальних родственников - она лишь обеспечивает возможность естесственного отбора. А уж родственников друг другу находим мы, люди.

С объектами и классами разобрались, а что же там с нашими стаканами и велосипедами. Мы уже поняли, что всё это объект, то есть грубо можно все объекты наследовать от какого-нибудь суперпредка, суперкласса, что и реализовано в некоторых языках. Но что другого общего между скейтом и стаканом, например? Конечно, можно углубляться и считать, что они все из молекул, и они все из твёрдых веществ. Однако это всё бред и СПГС , так что ответ прост - да ничего. То есть это совершенно разные объекты с совершенно разным функционалом. Более того - естесственно компьютерные модели и иерархии будут сильно отличатся от физик и химий. И это нормально, вопрос об адекватностях моделей ставиться лишь когда модель неадекватна, а до тех пор пилить можно что угодно, лишь бы работало.

Вот. У нас есть супер-предок Object, от которого дефолтно наследуются все объекты. Допустим, то что объекты состоят из атомов и есть то, что наследуют все объекты. Но все дополнения и правки - полиморфизм. Так, из атомов мы слепили колёса и приделали на доску - ок, это скейт. На него можно встать и катиться, а сильно извернувшись и полетать в трёх метрах над землёй, прямо таки излучая своё яркое эго. В то время как стакан - это мы слепили из атомов плотную ёмкость, из которой вода не выливается под действием силы тяжести. И прямое применение стакана - налив воды опрокинуть его над ртом, чтобы вода вытекла прямо в желудок. Так делают настоящие пацаны, не заботясь об икоте или страхе утонуть, так что вот - полиморфизм.

Однако что с остальным? У нас ещё абстракция, инкапсуляция и наследование. Ок, начнём с наследования, так оно наиболее близко. Вот что у нас общего между стаканом и кружкой? Ну в оба можно налить воду, но у кружки есть ручка чтобы держаться. То есть можно придумать некий общий класс - ёмкость. Однако что это за класс? Можно например за этот класс взять стакан, тогда все ёмкости по дефолту стаканы, а всё остальное - видоизменённые стаканы. Но кому-то больше нравяться кувшины, например некоторые чики насят их на голове, считая что это удобно. Ну и пусть носят, но как-то же решить надо, что главнее и идеальнее. Так вот - недостяжимый идеал и есть главный - это называется абстрактный класс. То есть ёмкость, что невозможно создать, для которого нет полного чертежа. А все чертежи, что дополнили до полного - есть наследованные классы от класса ёмкость.

Тут мы подошли к абстракции. Вот такое иерархическое наследование приводит нас к, возможно главной, идее ООП. Вот мы взяли и выделили всё, куда можно налить воду в отдельный класс, нарисовали общий чертёж, но специально не доделали его, оставив зазор для будущих творцов, и назвали чертёж - ёмкость. Тысячи лет изобретатили всех миров создают свои ёмкости, одна лучше другой. Для разных людей - по разному, конечно. Но каждый раз группировать молекулы стекла определённым образом - непростая задача. Поэтому ремесленники пошли на хитрость, они создали тайный совет ремесленников мира и решили делиться друг с другом своими наработками. То есть создавать мелкие чертежи и объявлять классом, например, извлистой ручки в форме ленты Мёбиуса, например. Возможно такая ручка удобно только инопланетным существам, но чертёж создан и к нему можно ссылаться при создании своего чертежа. Таким образом мы абстрагируемся от низкоуровневой задачи "формирования ёмкостей посредством перемещения молекул" к "конструированию ёмкости посредством совмещения деталей, элементов". Это и есть абстракция.

Но мы подошли к последнему пункту - инкапсуляция. Она неразрывна с абстракцией, и по сути благодаря ей она и работает. Инкапсуляция - это своеборазный клей (или синяя изолента), которым склеивают разные чертежи в один. То есть совмещение деталей для создания своей - это и есть инкапсуляция. Причём при совмещении мы можем не описывать детали этого совмещения (то есть члены класса могут быть приватными), таким образом помогая абстрагироваться тем, кто этот чертёж использует. Вот посмотрим на чайник - что это такое? Это стакан (или кружка) к которому снизу (а может внутри по середине?) приклеен нагревательный элемент. Пустив по нему ток, согласно инкапсулированному в нагревательный элемент закону Ома, будет выделяться тепло и нагреваться вода. А кофемашина? Это куда более сложное устройство, с множеством насосов, ёмкостей, шлюзов, измельчителей и чайников. И всё склееное клеем. А может синей изолентой. Это снова инкапсуляция.

Таким образом, абстракция невозможна без инкапсуляции и наследовании, как невозможен полиморфизм без, собственно, наследования. Ну а полиморфизм невозможен ещё и без инкапсуляции, которая банально бесполезна без наследования и полиморфизма. Вот такие тут треугольники с пирогами. Жаль только про пирог наврали. И про день рожденье.

 

 

Это интересно: