Нет.
Динамическая отправка - фактическая цепочка методов / сигнатур / переопределений привязывается во время компиляции. Вызываемый метод зависит от фактического типа времени выполнения объекта, но никакой реальной интерпретации не происходит. Это все еще будет версия статически связанного метода.
Вот пример на C #.
class Foo {
public override string ToString() { return "foo's ToString"; }
}
void Example(object p1) {
p1.ToString();
}
Вызов p1.ToString является примером динамической отправки. Код статически привязывается к методу ToString. Однако это виртуальный метод, поэтому фактический вызванный метод .ToString () не будет известен до времени выполнения, но при вызове метода .ToString () гарантируется . Это будет ToString фактического типа p1. Так что, если p1 на самом деле является экземпляром Foo, будет вызван Foo :: ToString.
Динамическое связывание - Фактический метод связан во время выполнения и подлежит интерпретации на основе семантики языка или структуры отражения. Это может не получиться из-за невозможности связать.
Пример:
void CallBar(object o) {
var method = o.GetType().GetMethod("Bar");
method.Invoke(new object[] {o});
}
В этом случае мы пытаемся вызвать метод «Бар» для рассматриваемого объекта. Ключевое слово пытается. Вполне возможно, что «Бар» не будет существовать на объекте. Но это определяется во время выполнения динамической привязкой к методу «Бар».
Самое общее у них то, что обе операции (вероятно) зависят от типа времени выполнения объекта.
EDIT
Добавлено еще несколько примеров по запросу ОП