Что такое полиморфизм в java

Объяснение полиморфизма

У нас есть один родительский класс, «Счет» с функцией пополнения и снятия. Учетная запись имеет 2 дочерних класса.

Операции ввода и вывода одинаковы для Сберегательного и Чекового счетов. Таким образом, унаследованные методы из класса Account будут работать.

Что такое полиморфизм в java

Изменение требований к программному обеспечению

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

Итак, метод вывода для привилегированных нужд должен быть реализован заново. Но вы не меняете проверенный кусок кода в Сберегательном и Чековом счете. Это преимущество ООП.

Что такое полиморфизм в java

Шаг 1) Такой, что при вызове «изъятого» метода для сохранения учетной записи выполняется метод из класса родительской учетной записи.

Что такое полиморфизм в java

Шаг 2) Но когда вызывается метод «Снять» для привилегированной учетной записи (средство овердрафта), выполняется метод вывода, определенный в привилегированном классе. Это полиморфизм.

Что такое полиморфизм в java

Еще примеры полиморфизма

Например, у нас есть класс Animal, у которого есть метод sound(). Поскольку это универсальный класс, поэтому мы не можем дать ему такую реализацию, как: Мяу, Гав, Хрю-хрю и т. д. Мы должны были дать универсальное сообщение.

public class Animal{
   ...
   public void sound(){
      System.out.println("Animal is making a sound");   
   }
}

Теперь допустим, что мы два подкласса класса Animal: Horse и Cat, который расширяет(см. наследование) класс Animal. Мы можем предоставить реализацию тому же методу, например так:

public class Horse extends Animal{
...
    @Override
    public void sound(){
        System.out.println("Neigh");
    }
}

а также

public class Cat extends Animal{
...
    @Override
    public void sound(){
        System.out.println("Meow");
    }
}

Не имеет никакого смысла просто вызывать универсальный метод sound(), поскольку у каждого животного свой звук. Таким образом, мы можем сказать, что действие, которое выполняет этот метод, основано на типе объекта.

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

Перегрузка операторов преобразования типов

Хотя типизация в C# строгая, типы можно преобразовывать. Например, мы можем конвертировать число типа float в число типа int:

С помощью перегрузки операторов преобразования типов мы можем прописать любую логику для конвертации объектов. Для наглядности создадим класс Hero:

В этом классе хранятся данные о персонаже. В MMO часто можно увидеть такой параметр, как мощь — это сумма всех характеристик героя или предмета. Например, её можно посчитать по следующей формуле:

Мощь = (сила + ловкость + интеллект) * уровень.

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

Модификатор implicit говорит компилятору, что преобразование может быть неявным. То есть оно сработает, если написать так:

Explicit, наоборот, означает, что преобразование должно быть явным:

Вот как будет выглядеть перегрузка преобразования объекта класса Hero в int:

Вот как она будет использоваться:

Вывод в консоль будет следующим:

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

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

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

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

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

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

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

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

Что такое полиморфизм в java

Проблемы читаемости

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

Или же непонятно, зачем конвертировать Hero в int. Ясность вносит название переменной (power), но этого недостаточно.

В большинстве случаев лучше использовать более простые решения. Например, можно создать для объекта свойство Power, которое возвращает сумму характеристик.

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

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

Что такое полиморфизм в java
спонтанно мутаций,

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

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

Какова цель полиморфизма

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

Чтобы лучше понять цель полиморфизма, взгляните на :

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

Так что же такое полиморфизм

Давайте снова посмотрим на определение, которое мы давали в начале статьи:

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

Выглядит понятнее, правда? Мы показали, как можно:

  • создавать «одноименные методы» в одном классе («перегрузка методов»)
  • или изменить поведение методов родительского класса («переопределение методов»).

Все это — проявления «повышенной гибкости» объектно-ориентированных языков благодаря полиморфизму.

Надеемся, наша статья была Вам полезна. Записаться на наши курсы по Java можно у нас на сайте.

Как проявляется полиморфизм

Дело в том, что если бы в Java не было принципа полиморфизма, компилятор бы интерпретировал это как ошибку:

Как видите, методы на картинке отличаются значениями, которые они принимают:

  • первый принимает int
  • а второй принимает String

Однако, поскольку в  Java используется принцип полиморфизма, компилятор не будет воспринимать это как ошибку, потому что такие методы будут считаться разными:

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

Как видите, мы не должны придумывать отдельное название для каждого метода — а главное их запоминать! Очень удобно.

Теперь Вы можете понять, почему часто этот принцип описывают фразой:

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

Полиморфизм металлов: суть, определение, примеры

Что такое полиморфизм в java

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

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

О том, какие металлы обладают полиморфизмом и как это проявляется, мы и расскажем.

Разные формы одного

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

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

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

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

Понятие «аллотропия» в научную терминологию ввел Йенс Якоб Берцелиус в 1841 году, после того как обнаружил, что винная и виноградная кислоты имеют одинаковый состав, но отличаются свойствами.

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

В отношении твердых веществ, причем как простых, так и сложных, употребляется термин «полиморфизм».

Явление полиморфизма металлов

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

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

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

Железо

Fe, или железо, – один из самых распространенных элементов в земной коре. В таблице Менделеева он стоит под 26-м номером.

В качестве простого вещества железо является светлым пластичным металлом с сильными магнитными свойствами.

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

Полиморфизм железа проявляется в четырех формах:

  • Феррит (α-Fe) — до температуры в 769 °C. Обладает объемноцентрированной кубической решеткой и ферромагнетическими свойствами.
  • β-Fe – выше 769 °C. Обладает ведет себя как парамагнетик и отличается от феррита только некоторыми параметрами кубической решетки. Не всегда выделяется в отдельную модификацию и рассматривается как α-Fe.
  • Аустенит (γ-Fe) – выше 917 °C. Имеет гранецентрированную кубическую решетку, хуже феррита проводит ток и тепло, ведет себя как парамагнетик.
  • δ-Fe – выше1394 °C. Объемноцетрированная кубическая решетка.

Олово

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

  • Серое олово (α-Sn) – ниже 13,2 °С. Кубическая решетка алмазного типа, вещество существует в виде серого порошка, проявляет себя как узкозонный полупроводник.
  • Белое олово(β-Sn) – выше 13,2 °С. Привычная форма олова единственная из всех модификаций имеет практическое применение и используется в промышленности. Обладает тетрагональной решеткой, при сгибании издает характерный хруст. При охлаждении превращается в α-Sn, теряя плотность и рассыпаясь. Этот процесс был назван «оловянной чумой».
  • (γ-Sn) – выше 161 °С. Имеет ромбическую решетку, характеризуется повышенной хрупкостью и плотностью.

Решите задачку по полиморфизму

Давайте проверим, что вы узнали о полиморфизме и наследовании.

В этой задачке Вам дается несколько методов от Matt Groening’s The Simpsons, от вавам требуется разгадать, какой будет вывод для каждого класса. Для начала внимательно проанализируйте следующий код:

Как вы думаете? Каким будет результат? Не используйте IDE, чтобы выяснить это! Цель в том, чтобы улучшить ваши навыки анализа кода, поэтому постарайтесь решить самостоятельно.

Выберите ваш ответ (правильный ответ вы сможете найти в конце статьи).

A)
I love Sax!
D’oh
Simpson!
D’oh

B)
Sax 🙂
Eat my shorts!
I love Sax!
D’oh
Knock Homer down

C)
Sax 🙂
D’oh
Simpson!
Knock Homer down

D)
I love Sax!
Eat my shorts!
Simpson!
D’oh
Knock Homer down

Переопределение методов родителя

Когда мы наследуем какой-либо класс, мы наследуем и все его методы. Но если нам хочется изменить какой-либо из методов, который мы наследуем, мы можем всего-навсего переопределить его. Мы не обязаны, например, создавать отдельный метод с похожим названием для наших нужд, а унаследованный метод будет «мертвым грузом» лежать в нашем классе.

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

Пример

Представим, что у нас есть такая структура:

Вверху иерархии классов стоит класс Animal. Его наследуют три класса — Cat, Dog и Cow.

У класса «Animal» есть метод «голос» (voice). Этот метод выводит на экран сообщение «Голос». Естественно, ни собака, ни кошка не говорят «Голос» Они гавкают и мяукают. Соответственно, Вам нужно задать другой метод для классов Cat, Dog и Cow — чтобы кошка мяукала, собака гавкала, а корова говорила «Муу».

Поэтому, в классах-наследниках мы переопределяем метод voice(), чтобы мы в консоли получали «Мяу», «Гав» и «Муу».

Обратите внимание: перед методом, который мы переопределяем, пишем «@Override». Это дает понять компилятору, что мы хотим переопределить метод

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

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

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

super ключевое слово

Что, если метод TreatPatient в классе Surgeon хочет выполнить функциональность, определенную в классе Doctor, а затем выполнить свою собственную специфическую функциональность? В этом случае ключевое слово может использоваться для доступа к методам родительского класса из дочернего класса. Метод TreatPatient в классе Surgeon может быть записан как:

treatPatient(){
   super.treatPatient();
     //add code specific to Surgeon
}

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

Шаг 1) Скопируйте следующий код в редактор

public class Test{
     public static void main(String args[]){
        X x= new X();
       Y y = new  Y();
       y.m2();
      //x.m1();
      //y.m1();
     //x = y;// parent pointing to object of child
     //x.m1() ;
     //y.a=10;
   }

}
class X{
   private int a;
   int b;
      public void m1(){
       System.out.println("This is method m1 of class X");
     }
}

class Y extends X{
      int c; // new instance variable of class Y
         public void m1(){
            // overriden method
            System.out.println("This is method m1 of class Y");
        }
       public void m2(){
           super.m1();
           System.out.println("This is method m2 of class Y");
      }
}

Шаг 2) Сохранение, компиляция Запустите код. Соблюдайте вывод.

Шаг 3) Раскомментируйте строки № 6-9. Сохранить, скомпилировать Запустите код. Соблюдайте вывод.

Шаг 4) Раскомментируйте строку # 10. Сохраните и Скомпилируйте код.

Шаг 5) Ошибка =? Это потому, что подкласс не может получить доступ к закрытым членам суперкласса.

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

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

Алтухов Ю. П. и Рычков Ю. Г. Генетический мономорфизм видов и его возможное биологическое значение, Журн. общ. биол., т. 33, № 3, с. 281, 1972; Бочков Н. П. Генетика человека, М., 1978; Майр Э. Популяции, виды и эволюция, пер. с англ., М., 1974; Харрис Г. Основы биохимической генетики человека, пер. с англ., М., 1973; Эрлих П. и Холм Р. Процесс эволюции, пер. с англ., М., 1966; Сavаlli-Sfоrza L. L. a. Bodmer 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; Неницеску К. Общая химия, пер. с румын., с. 130, М., 1968.

Интерфейсы и наследование в полиморфизме

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

Вывод этого кода будет таким:

Так как определены конкретные реализации, то будут вызваны методы и и .

Перегрузка (overloading) метода — это полиморфизм? Многие программисты путают отношение полиморфизма с переопределением методов (overriding) и перегрузкой методов (overloading). Фактически, только переопределение метода — это истинный полиморфизм. Перегрузка использует то же имя метода, но разные параметры. Полиморфизм — это широкий термин, поэтому всегда будут дискуссии на эту тему.

Перегрузка методов

C# — строго типизированный язык. Это значит, что вы не можете поместить строку в переменную типа int — сначала нужно провести преобразование. Так же и в метод нельзя передать параметр типа float, если при объявлении метода был указан тип double.

Однако если вы экспериментировали с методом WriteLine() класса Console, то могли заметить, что в него можно передавать аргументы разных типов:

Кажется, что нарушена типизация, но компилятор не выдаёт ошибку. Вместо этого всё успешно выводится на экран:

Что такое полиморфизм в java

Так происходит потому, что у метода WriteLine() есть перегрузки — методы с таким же названием, но принимающие другие аргументы:

Когда вы вызовете метод Sum(), компилятор по переданным аргументам узнает, какую из его перегрузок вы имели в виду — так же, как это происходит с методом WriteLine().

При этом стоит учитывать, что значение имеют только типы и количество передаваемых аргументов. Например, можно написать такие перегрузки:

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

Что нужно помнить о полиморфизме

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

  • Аннотация обязывает программиста использовать переопределенный метод; в противном случае возникнет ошибка компилятора.

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

  • Большинство шаблонов проектирования зависят от той или иной формы полиморфизма.

  • Единственный способ вызвать нужный ваш метод в полиморфном подклассе — это использовать приведение типов.

  • Можно создать мощную структуру кода, используя полиморфизм.

  • Экспериментируйте. Через это, вы сможете овладеть этой мощной концепцией!

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

Что такое полиморфизм в java

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