Skip to content

Latest commit

 

History

History
34 lines (24 loc) · 2.44 KB

polymorphism.md

File metadata and controls

34 lines (24 loc) · 2.44 KB

ООП: полиморфизм в Golang

Оригинал

Прежде, чем перейти к примерам, давайте дадим определение полиморфизму.

"Существование чего-либо в различных формах"

В программировании также бывают такие ситуации, когда поведение одинаково в разных контекстах. По-хорошему такое поведение должно называться одинаково. Именно здесь полиморфизм проявляется в контексте программирования. С точки зрения программирования возможны два типа полиморфизма:

  • Полиморфизм во время компиляции (Compile Time Polymorphism) - в этом случае компилятор знает какие именно функции будут выполняться для конкретного вызова. Примером полиморфизма во время компиляции являются:
    • перегрузка функции — одно и то же имя функции с разными аргументами
    • перегрузка операторов
  • Полиморфизм во время выполнения (Run Time Polymorphism) - в этом случае функция, которая должна быть вызвана, определяется во время выполнения.

Давайте рассмотрим какие типы полиморфизма во времени компиляции и выполнения возможны в Go.

Заключение

Если вы прочитали две вышеупомянутые статьи, то поняли, что полиморфизм во время компиляции в GoLang невозможен. Доступен только полиморфизм времени выполнения. Полиморфизм во времени выполнения достигается в Go с помощью интерфейсов.