Gymterview
junior

Что такое статическое и динамическое связывание?

Связывание — присоединение вызова метода к телу метода.

Статическое (раннее) связывание (early binding) — выполняется компилятором до запуска программы. Применяется к методам final, static и private.

Динамическое (позднее) связывание (late binding, runtime binding) — выполняется во время работы программы на основании фактического типа объекта. Компилятор не знает тип заранее — механизм вызова определяет его и вызывает нужную реализацию.

В Java все методы используют динамическое связывание по умолчанию, кроме объявленных как final, static или private (приватные методы являются final по умолчанию).