unbounded dynamic polymorphism
не зависит от языка.Поэтому я предполагаю, что ваш вопрос
Что такое «неограниченный динамический полиморфизм» в Smalltalk?
Можно упростить до
Что такое"неограниченный динамический полиморфизм"?
Что объясняется в упомянутой вами документации.Я думаю, вы спрашиваете, что делает smalltalk неограниченным динамическим полиморфным языком?Прежде всего, я не отдаю должное термину «связанный» или «не связанный».Это определение мне не понятно.
Например, предположим, у меня есть шаблон класса A, если вы решите создать его экземпляр как A<int>
, он связан, здесь нет недетерминированных вещей.Даже для класса А интерфейс предопределен.Я бы сказал, что шаблон - это способ иметь полиморфный тип в том же смысле, что и система типов Хаскелла.
Я думаю, что использование термина «несвязанный / связанный» результат плохого определения того, что такое полиморфизм.Полиморфизм может применяться к типу или интерфейсу.
Полиморфный интерфейс - это интерфейс, который может быть реализован при выборе другого поведения.Например, объект a
, b
, c
может по-разному реагировать на интерфейс Copy
.
Полиморфный тип - это тип с параметром.
Как вы можете видеть, полиморфный интерфейс и полиморфный тип не связаны между собой двумя вещами.
Другими словами, для классификации C ++ и smalltalk я бы сказал, что C ++ является языком статического типа с полиморфным типом.А smalltalk - это язык динамического типа.И для этого не нужна система полиморфной типизации, поскольку полиморфный тип имеет смысл только в языке статического типа.