Полиморфный это какой

Полиморфизм

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

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

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

Термодинамические и структурные причины полиморфизма

Устойчивой при данных условиях будет полиморфная форма с минимальной свободной энергией. Если рассматривать полиморфные превращения при постоянном давлении и пренебречь происходящим при этом изменением объема, которое, как правило, невелико, то энергия Гельмгольца F данной полиморфной модификации определяется выражением F=U—TS, где U — внутренняя энергия; Т — абсолютная температура; S — энтропия.

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

Структурная классификация типов полиморфизма

Бюргер предложил следующую схему структурной классификации полиморфизма (табл. 6).

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

Реконструктивные превращения происходят с более глубокой перестройкой структуры, сопровождающейся разрушением одной структуры и образованием новой, и идут гораздо медленнее деформационных превращений. Например, переход β-формы 2CaO·SiO2 в γ-форму. При его протекании разрушаются все первичные координационные связи, происходит вращение тетраэдрических групп 4- и значительный сдвиг атомов кальция, что сопровождается большим изменением объема.

Таблица 6. Структурная классификация полиморфизма

Тип полиморфного превращения

Скорость полиморфного превращения

1. Превращения, связанные с изменениями в первичной координационной сфере:

а) деформационные превращения с растяжением)

б) реконструктивные превращения (с перестройкой)

Высокая

Низкая

2. Превращения, связанные с изменениями во вторичной координационной сфере:

а) превращения со смещением

б) реконструктивные превращения (с перестройкой)

Высокая

Низкая

3. Превращения, связанные с разупорядочением структуры:

а) ориентационные превращения

б) позиционные превращения

Высокая

Низкая

4. Превращения, связанные с изменением типа химической связи

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

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

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

Превращения, связанные с изменением типа химической связи.

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

Энантиотропные и монотропные полиморфные превращения

Независимо от характера структурных изменений, происходящих при полиморфных превращениях, различают две их разновидности: энантиотропные (обратимые) и монотропные (необратимые) превращения.

Рис. 10. Диаграмма р—Т для энантиотропного (а) и монотропного (б) превращений α- и β-модификаций (ж — жидкая фаза)

На рис. 10 изображены кривые зависимости упругости пара р от температуры Т для веществ, существующих в двух полиморфных формах: α и β. Сплошные кривые соответствуют стабильному, а пунктирные — метастабильному состояниям фаз. Следует обратить внимание, что упругость пара над метастабильными в данной температурной области формами всегда выше, чем над стабильными. Точки пересечения кривых соответствуют температурам взаимного равновесного (пересечения сплошных кривых) или неравновесного (пересечения пунктирных кривых) превращения фаз (TПр) или их температурам плавления (Т’пл и Т»пл).

Энантиотропные превращения могут протекать обратимо в любом направлении. Например, если модификация α (рис. 10, а) при нагревании переходит при температуре Тпр в модификацию β, а последняя при температуре Т’пл— в жидкость (т. е. плавится), то при охлаждении процесс будет идти в обратной последовательности. Схематически это можно изобразить следующим образом:

α↔ β ↔ Жидкость

Примерами энантиотропных полиморфных превращений являются превращения между полиморфными формами SiO2.

При монотропных полиморфных превращениях переход одной модификации в другую необратим, т. е. может идти только в одном направлении. Например (рис. 10, б), стабильную α-форму можно расплавить при температуре Т’пл, при медленном охлаждении расплава она при той же температуре вновь будет кристаллизоваться из расплава, однако, если последний охлаждать достаточно быстро, из расплава при температуре T»Пл будет выделяться метастабильная β-форма, которая затем уже перейдет в стабильную α-форму. Непосредственный же переход α- в β-форму без плавления материала невозможен. Схематически это можно изобразить следующим образом: т. е. переход (β—α в равновесных условиях монотропен.

Энантиотропные превращения одной модификации вещества в другую имеют место, если обе модификации (α и β на рис. 10, а) имеют при данном давлении температурные области стабильного существования, а температура их взаимного превращения Tпр лежит ниже температур плавления Т’пл и Т»пл каждой из модификаций.

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

>Отправить запрос

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package edu.javacourse.robot; public class RobotManager { public static void main(String args) { // Первое проявление полиморфизма — ссылке на класс-предок // можно присвоить класс-потомок Robot robot = new RobotTotal(0, 0); robot.forward(20); robot.setCourse(90); robot.forward(20); robot.setCourse(90); robot.forward(50); // Напечатать координаты robot.printCoordinates(); // Напечатать общую дистанцию уже не получится // компилятор выдает ошибку //System.out.println(robot.getTotalDistance()); } }

Как видим, создавая объект RobotTotal мы его «сужаем» до объекта класса Robot. С одной стороны это выглядит достаточно логично и непротиворечиво — RobotTotal является роботом. С другой стороны возникает вопрос — а метод forward будет вызываться какой ? Класса RobotTotal или Robot ? Думаю, что для вас ответ «Как RobotTotal» выглядит предпочтительнее — и это соврешенно правильный ответ. Можете в этом убедиться сами, добавив в методв forward какую-либо поясняющую печать. Например так:

В этом можно убедиться еще более удобным и практичным образом — спросить у объекта его класс и у класса спросить его имя. Этот механизм называется Reflection — он позволяет получить информацию об объекте прямо в момент выполнения программы. Мы будем его рассматривать несколько позже. Вот как может выглядеть такой вызов:

System.out.println(robot.getClass().getName());

Расшифровывается это приблизительно так: сначала у объекта robot получаем его класс методом getClass(). Возвращается объект типа Class (есть такой стандартный класс — Class). И у этого класса есть метод, который возращает имя — getName(). Вот возможный полный код:

Как видим мы можем присвоить ссылке на объект класса-предка объект-потомок — и это работает. С одной стороны, мы работаем как-будто с классом Robot, с другой стороны — поведение нашего обхекта соответствует классу RobotTotal. ВАЖНО !!! А вот в обратную сторону присваивание НЕ работает. На запись вот такого вида

RobotTotal robot = new Robot(0, 0);

компилятор будет выдавать ошибку.
Думаю, что с технической точки зрения все достаточно понятно. Но возникает логичный вопрос — зачем это вообще надо ? С инкапсуляцией более-менее понятно, с наследованием — в принципе тоже. Но вот этот механизм зачем, какое преимущество мы получим при использовании этой парадигмы ? Для первого приближения рассмотрим наш пример графического приложения, в котором мы создавали свой компонент OvalComponent. Мы использовали модифицированный класс JFrame (OvalFrame) и что весьма важно, мы использовали уже готовый метод add для добавления нашего объекта на форму. Я бы хотел заострить ваше внимание на этом весьма тонком моменте — мы использовали УЖЕ существующий метод существующего класса JFrame. И этот метод (да и класс тоже) совершенно не осведомлен о нашем новом классе OvalComponent. И тем не менее он прекрасно с ним работает — мы сами это видели. Думаю, что вы уже догадались в чем фокус, но я тем не менее проговорю эту мысль — класс JFrame умеет работать с классами-потомками от класса JComponent и ему не важно, какой точно класс он получил — они для него все являются объектами класса JComponent. И это здорово нам помогает. Т.к. наш класс OvalComponent рисует себя сам путем вызова метода paintComponent где-то у себя, то ситуация еще более восхитительна — вызывается именно НАШ метод paintComponent. Значит мы можем написать много разных классов унаследованных от класса JComponent, положить их на форму и все они будут рисоваться так, как они сами это умеют.
Что еще интересно — для самого себя класс тоже может вести себя полиморфно. Если внимательно посмотреть на код класса OvalComponent метод paintComponent объявлен как protected и вызывается внутри класса JComponent и никак иначе. Снаружи другим классам он недоступен. Т.е. все наследники класса JComponent предоставляют свои реализации метода paintComponent и вызывают его внутри унаследованного метода paint, который уже объявлен как public. Иными словами — все наследники используют метод paintComponent из уже готового метода paint. Возможно, вы еще не совсем готовы оценить «красоту игры», но на мой взгляд полиморфизм является просто чудесной штукой. Мы еще вернемся к этой весьма увлекательной парадигме, ну а пока сделаем еще одно графическое приложение, которое позволит нам поместить разные типы компонентов на форму, о которых она не знает, но тем не менее сможет прекрасно ими управлять.

Графическое приложение

Данное приложение несколько сложнее предыдущего — здесь создаются разные компоненты для рисования разных фигур. Приложение содержит 5 классов: 3 класса являются компонентами, которые рисуют внутри себя три разных фигуры (овал, треугольник и прямоугольник), класс для отображения окна и класс для создания и отображения самой формы. Сначала рассмотрим три класса для рисования фигур. Они используют методы класса Graphics и вряд ли требуют каких-либо комментариев. Я их поместил в отдельный пакет.

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

Еще раз обратите внимание, что когда мы вызываем метод add мы передаем форме разные объекты. Но что здесь важно — они все наследники JComponent. Форме в принципе надо получить еще более «старого» предка — java.awt.Component. Можно конечно углубиться в исходники, но давайте пока немного упростим и поймем главное — форма «думает», что она «работает» в классом JComponent. Именно у этого класса она вызывает метод прорисовки paintComponent (повторюсь — это не совсем так, но сейчас мы упрощаем для понимания главной идеи полиморфизма). Мы в какой-то мере «обманываем» форму — подсовываем ей компонент, который за счет наследования имеет модифицированный метод прорисовки и когда форма «полагает», что она вызывает метод paintComponent у объекта класса JComponent на самом деле она вызывает метод paintComponent у объекта уже нашего нового класса OvalComponent или RectangleComponent.
Полиморфизм таким образом позволяет вам подменять объекты для тех кто их вызывает и вызывающий даже не знает об этом. Оглушительная возможность.
Заключительный класс для запуска формы мы уже видели. Наверно уже есть смысл отметить, что с точки зрения правильного создания и запуска формы наше приложение не совсем корректно. Но для упрощения мы пока идем на такой шаг — наша форма достаточно простая и может быть создана так, как показано.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package edu.javacourse.ui; import javax.swing.JFrame; public class ShapeApplication { public static void main(String args) { // Создаем графическое окно ShapeFrame of = new ShapeFrame(); // Задаем правидо, по которому приложение завершиться при // закрытии этой формы of.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Делаем окно видимым of.setVisible(true); } }

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

Мы рассмотрели основные парадигмы ООП и теперь перед нами задача более подробно познакомиться с конструкциями и идеями языка Java. Чем мы с вами и займемся.

И теперь нас ждет следующая статья: Статические свойства и методы

Полиморфизм собственности в рыночной экономике.

1. Предмет економічної теорії.2. Зародження та етапи розвитку економічної теорії.3. Сучасні економічні теорії. Розвиток економічної думки в Україні.4. Методи дослідження економічних процесів та явищ.5. Функції економічної теорії.6. Економічні категорії та економічні закони.7. Позитивна та нормативна економічна теорія.8. Екойомічні потреби: їхня суть та класифікація. Закон зростання потреб9. Потреби та блага: зміст, структура, функції, корисність благ. Величина корисності.10. Закон насичення задоволення потреб та закон спадної граничної корисності.11. Економічні інтереси: суть, види, взаємодія12. Теория мотивации13. Виробництво як процес суспільної праці.14. Основные факторы общественного производства и их взаимосвязь15. Кривая производственных возможностей и ее характеристика16. Производственная функция и проблемы экономического выбора17. Суспільне виробництво і суспільне багатство.18. Эффективность общего производства и факторы возрастания19. Экономическая теория про место человека в общественном производстве2 0. Структура и использование национального богатства.21. Формационные и цивилизационные подходы к исследованию экономических систем23. Постиндустриальная цивилизация24. Змісті структура економічних систем.25. Тенденции, что характеризуют переход от одной экономической системы к другой26 Типи;економічних систем, їхня характеристика27. Моделі організації національних ринкових господарств: зміст, риси, функції.28. Теоретичні та реалізовані на практиці моделі соціалізму: зміст, риси, суперечності29. Соціально-орієнтована економічна система: зміст, риси, місце в історичному розвитку30. Экономическая система свободной конкуренции31. Монополия и государственно-монополистический капитализм как экономическая система32. Переходные экономические системы33. Правовое и экономическое содержание собственности34. Полиморфизм собственности в рыночной экономике.35. Разгосударствление и приватизация36. Теория прав собственности как «правил игры» в экономической системе37. Структура отношений собственности в разных экономических системах38. Відносини та форми власності у трансформаційній економіці України39. Товарное производство40. Товар и его свойства41. Величина стоимости товаров и факторы, что ее определяет42. Закон стоимости43. Трудовая и информационная теория стоимости44 Генезис форм організації суспільного виробництва45. Гроші: суть, функції46. Возникновение денег. Эволюция концепций.47. Формы денег и их характеристика Товарные деньги48. Функциональныеформы денег49. Законы денежного обращения50. Демонитизация денег51. Современные теории денег52. Черты и принципы функционирования современной рыночной экономики53. Рынок: эволюция54. Рынок: содержание, функции55. Инфраструктура рынка56. Элементы инфраструктуры57. Товарные биржи58. Фондовая биржа59. Ринок праці60. Суб’єкти господарювання, їх взаємозв’язок61. Конкуренція: суть, види, функції62. Види економічної конкуренції: внутрігалузева та міжгалузева; досконала та недосконала тощо, добросовісна та недобросовісна.63. Методи конкурентної боротьби64. Попит, зміст та фактори, що на нього впливають. Крива попиту. Закон попиту65. Пропозиція: зміст та фактори, що на неї впливають. Крива пропозиції. Закон пропозиції’66. Еластичність попиту: за ціною, за доходом та перехреснаЕластичність попиту за доходом67. Взаємодія политу й пропозиції. Ціна ринкової рівноваги68. Закон попиту. Крива попиту. Рух по кривій та її зрушення69. Закон пропозиції. Крива пропозиції. Рух по кривій та її зрушення

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *