Встречается на собеседованиях • сегодня

В чем разница меду статическим и динамическим связыванием в 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 (динамическое связывание)
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы