Креативное мышление вдохновляет идеи. Идеи вдохновляют на перемены.
Барбара Янушкевич

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

Кормление, купание и помощь им везде. Постепенно они научились самостоятельно есть и одеваться.

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

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

Разрабатываемые нами Java-объекты тоже нуждаются в изменении и адаптации. Поскольку мы создаем решение с использованием объектов, им необходимо сгибаться.

Для этого разработчикам необходимо полагаться на принцип полиморфизма. Что это обозначает?

Определение полиморфизма

Давайте начнем с того, что означает это слово, а затем перейдем к определению информатики. Согласно Merriam-Webster, полиморфизм — это качество или состояние существования в различных формах или их принятие. Это общее определение.

В информатике он имеет более конкретное значение. Мы создаем объекты, которые могут менять форму в зависимости от ситуации.

Например, у нас есть родительский класс Vehicle. Класс Vehicle имеет метод перемещения.

У нас есть дочерний класс HondaAccord, у него есть метод перемещения.

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

Статический

В нашем примере мы показали вам динамическую форму полиморфизма в Java (подробнее об этом позже). Существует также статический полиморфизм. Это достигается за счет перегрузки метода.

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

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

Динамический

Давайте первый пример. Это был пример динамического полиморфизма. Мы не проверяли это, чтобы увидеть, что происходит на самом деле.

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

Когда мы запускаем этот пример, у нас есть ссылки на несколько объектов. Наша первая ссылка на наш TrekMountainBike. Когда мы вызываем move, мы видим отображаемую «педаль». Затем мы создаем объект Vehicle. На экран выводится сообщение «Автомобиль движется». Наконец, мы создаем объект HondaAccord, который печатает «нажмите акселератор».

Полиморфизм — мощный объектно-ориентированный принцип. Каждый разработчик должен понимать, как это работает в целом.

Кроме того, в зависимости от выбранного вами языка вы должны знать, как его реализовать.

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

Как часто вы использовали полиморфизм?

С какими трудностями вы столкнулись при этом?

Хлопайте в ладоши и подписывайтесь на MyITCareerCoach.com