Встречается на собеседованиях • сегодня
В чем разница меду статическим и динамическим связыванием в Java
Статическое связывание (раннее связывание) происходит во время компиляции. Методы определяются на основе типа ссылки, а не объекта. Применяется для private, final, static методов и перегрузки методов (overloading).
Динамическое связывание (позднее связывание) происходит во время выполнения. Метод определяется по типу объекта (через виртуальную таблицу). Используется для переопределения методов (overriding).
Пример:
java
class Parent {
static void staticMethod() { System.out.println("Parent static"); }
void dynamicMethod() { System.out.println("Parent dynamic"); }
}
class Child extends Parent {
static void staticMethod() { System.out.println("Child static"); }
@Override void dynamicMethod() { System.out.println("Child dynamic"); }
}
public class Main {
public static void main(String[] args) {
Parent p = new Child();
p.staticMethod(); // Parent static (статическое связывание)
p.dynamicMethod(); // Child dynamic (динамическое связывание)
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы