Полиморфизм -- что это в программировании
Primary tabs
Forums:
Полиморфизм - явление, при котором функции(методы) с одним и тем же именем ("поли" = "единичный") соответствуют различные кодовые реализации.
Если "в целом": полиморфизм это возможность использовать один интерфейс (в общем смысле этого слова) для разных реализаций - не уточняя как именно это произошло, в общем случае (если говорить про все вообще языки программирования) полиморфизм не является следствием наследования, а является "самостоятельным" принципом ООП.
Когда возникает полиморфизм
Полиморфизм в том числе возникает в случае, если сравнить родительский объект и производный от него: явление возникает в случае, если в классе-потомке переопределяется реализация метода с сохранением его сигнатуры функции - то есть особенностей её объявления. - такая ситуация называется "переопределением" метода.
Ещё возможна ситуация, когда в одном классе существуют два метода с одинаковыми именами но, но разными сигнатурами - и как следствие - разными реализациями (иначе зачем одинаковые реализации)(обычно они различаются порядком и/или типом передаваемых значений) - такая ситуация тоже является случаем полиморфизма и называется перегрузкой методов
Итак, мы говорили о двух случаях возникновения полиморфизма:
- переопределение метода (полиморфизм в сравнении с объектом родителем или же в сравнении с другим потомком такого же родителя но с другой реализацией, например унаследованной от родителя)
- перегрузка метода (здесь полиморфизм возникает даже в рамках одного класса - так как реализация разная, а вот "интерфейс", который в данном случае представлен просто сигнатурой каждой функции - т.е. два интерфейса одинаковы в общем смысле - т.к. одинаковы имена функций, а вот реализации различны)
- Log in to post comments
- 5006 reads