В java, если вызывается метод, НЕ унаследованный каким-либо подклассом, используется ли динамическое или статическое связывание?
Я знаю, что это не будет иметь никакого значения для вывода в данном конкретном случае, но просто хотел знать это.
Если класс или метод не помечены final, они могут быть переопределены новыми типами, введенными во время выполнения загрузчиком классов.В этом смысле они все еще «динамичны».
final
Во время выполнения JVM знает все загруженные классы и переопределен ли метод;модификатор final для методов не имеет значения для JVM.
С этим знанием JVM оптимизирует вызовы методов, которые не переопределяются;в этом смысле привязка является «статической».
В вызовах методов экземпляра в Java всегда используется динамическое связывание.Статические методы и прямой доступ к закрытым членам используют статическое связывание.
Длина: http://geekexplains.blogspot.com/2008/06/dynamic-binding-vs-static-binding-in.html
Эта статья объясняет это довольно хорошо.