Как понять, будет ли поведение использовать статическое или динамическое связывание в Java?

Я понимаю на низком уровне, что такое статические (время компиляции) и динамические (время выполнения) привязки ].

Я до некоторой степени понимаю, почему это важно знать (например, тот факт, что обобщенные типы разрешаются статически, помогает объяснить, что вы можете, а что не можете делать и т. Д.).

Что я не делаю ' Я понимаю, почему выбор был сделан так или иначе - например, Java использует статическое связывание для перегруженных методов и динамическое связывание для переопределенных. Это почему? Это выбор дизайна, что-то очевидное и неизбежное для людей, которые понимают глубинное функционирование Java, или это то, что нужно изучить (а не понять)?

7
задан JDelage 6 December 2010 в 05:46
поделиться