Полиморфизм - это характеристика или особенность языков программирования.Языки программирования либо поддерживают это, либо нет.Поскольку языки программирования подпадают под действие иногда существенно различных парадигм, разные парадигмы (функциональное программирование или объектно-ориентированное программирование) могут иметь несколько разные интерпретации, и применение HOW полиморфизма выражается в этой конкретной парадигме.
Насколько яЗнаете, в ООП полиморфизм считается одним из основных принципов и очень отличительным.Большинство объектно-ориентированных языков имеют полиморфизм среди многих своих особенностей.В двух словах, полиморфизм лучше всего проявляется, когда вызывающая сторона объекта с полиморфной реализацией не знает точный тип объекта.Это часто является следствием наследования и приведения, также называется полиморфизм подтипа и работает с использованием vTables .
Я разделяю идею (наряду со многими авторами), что перегрузка операторов является проявлением полиморфизма.Таким образом, если вы перегружаете оператор == для получения TypeA == TypeB, вы фактически интерпретируете TypeB как TypeA, если сравниваете элементы в списке, содержащем случайные элементы типов A или B, вас не волнует, что получится,так как все они могут быть рассмотрены на равенство.Как и во многих других дебатах, у этого есть защитники и ненавистники.
Но это конец истории для ООП.
В функциональных (декларативных) языках (Lisp, F #), поскольку граждане первого класса являютсяФункции (против объектов) полиморфизм выражается через отношения между функциями и проявляется немного по-другому.См. Тип Полиморфизм
Последнее слово, которое я хочу сказать, это то, что я люблю Википедию так же, как и все остальные, но вы всегда должны брать статьи с крошкой соли и никогда не доверять имвслепую без подтверждения других источников.Если вы хотите узнать правду об истинных принципах ООП, вам следует начать здесь:
Построение объектно-ориентированного программного обеспечения (Бертран Мейер)