В сегодняшней статье мы обсудим полиморфизм, один из 4 столпов объектно-ориентированного программирования. Мы рассмотрим, что такое полиморфизм, как и почему мы его используем, а также пример кода с использованием JavaScript. Прежде чем мы углубимся, давайте немного поговорим об объектно-ориентированном программировании.

Объектно-ориентированного программирования

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

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

Полиморфизм

Что такое Полиморфизм?

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

Зачем это использовать?

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

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

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

Каковы преимущества использования полиморфизма?

  • Код более многоразовый
  • Может иметь одно имя переменной для нескольких типов данных
  • Уменьшение связи между различными функциями

Пример

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

В нашем примере мы создадим класс Animal. Внутри этого класса мы создадим метод с именем speak. Мы также создадим еще два класса, Dog и Bird, которые также будут иметь метод с именем speak, но методы в этих классах будут предоставлять другой выход. Приступаем к кодированию!

class Animal {
    speak() {
        console.log('** makes animal noises **')
    }
}

Вот наш класс Animal. Внутри находится наш метод speak, который просто выводит строку на консоль.

class Bird extends Animal {
    speak() {
        console.log('tweet tweet')
    }
}

class Dog extends Animal {
    speak() {
        console.log('woof woof')
    }
}

Здесь у нас есть классы Dog и Bird, каждый со своим собственным методом speak. Мы переопределяем метод speak класса Animal, поэтому классы Dog и Bird производят уникальный вывод на основе сам Класс.

var animal = new Animal();
var dog = new Dog();
var bird = new Bird();

animal.speak();
// ** makes animal noises **
dog.speak();
// woof woof
bird.speak();
// tweet tweet

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

Заключение

В этой статье мы говорили о концепции объектно-ориентированного программирования полиморфизма. Мы рассказали, что это такое, как и зачем мы его используем, его преимущества, а также пример использования JavaScript. В целом, этот метод чрезвычайно ценен в мире программирования. Возможность понять и использовать его сделает ваши проекты кодирования более читабельными, многоразовыми и мощными! Я надеюсь, что вы узнали что-то новое из этой статьи, и обязательно ознакомьтесь с моими другими статьями здесь, на Medium! Удачного кодирования!