Здесь уместно различие не между компилируемыми и интерпретируемыми языками, а между статически типизированным (Java, C #) и динамически типизированным (Ruby, Python, Objective-C).В динамически типизированном языке информация о типах очень часто не известна до времени выполнения.Во время выполнения все объекты статически типизируются как id
в Objective-C.
Кроме того, основная идея в динамически типизированных языках ОО состоит в том, что вам не нужно заботиться о том, какой тип объекта, пока он отвечает насообщения, которые вы хотите отправить.Таким образом, перегрузка, основанная на типе, вылетит прямо перед лицом этого.