junior
Что такое статическое и динамическое связывание?
Связывание — присоединение вызова метода к телу метода.
Статическое (раннее) связывание (early binding) — выполняется компилятором до запуска программы. Применяется к методам final, static и private.
Динамическое (позднее) связывание (late binding, runtime binding) — выполняется во время работы программы на основании фактического типа объекта. Компилятор не знает тип заранее — механизм вызова определяет его и вызывает нужную реализацию.
В Java все методы используют динамическое связывание по умолчанию, кроме объявленных как final, static или private (приватные методы являются final по умолчанию).