Базовое объяснение сложной темы CS

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

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

Мы начнем с базового определения объектно-ориентированного программирования.

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

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

Что действительно делает этот код «объектно-ориентированным», так это два факта:

  • Сначала был создан класс для хранения функций
  • А во-вторых, функция была вызвана по отношению к объекту

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

Наследование

Далее мы рассмотрим наследование

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

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

Полиморфизм

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

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

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