Вопросы с собеседований по Java и ответы на них.
По рекламе: @tproger_sales_bot
Учиться у нас: clc.to/3wECtA
Для обратной связи: @proglibrary_feeedback_bot
Post #693
1.85K
ℹ️ Что такое динамическое связывание?
Динамическое связывание — это процесс, при котором вызов метода определяется во время выполнения программы, а не на этапе компиляции. Это возможно благодаря механизму полиморфизма.
Например, если метод переопределён в классе-наследнике, JVM решает, какую версию метода вызывать (из родительского или дочернего класса), только во время выполнения. Или когда объект создаётся на основе интерфейса, вызов метода также определяется динамически.
📌 Пример:
В этом коде тип переменной animal определён на этапе компиляции (Animal), но метод sound() вызывается из Dog, потому что объект определяется динамически во время выполнения.
Динамическое связывание — это процесс, при котором вызов метода определяется во время выполнения программы, а не на этапе компиляции. Это возможно благодаря механизму полиморфизма.
Например, если метод переопределён в классе-наследнике, JVM решает, какую версию метода вызывать (из родительского или дочернего класса), только во время выполнения. Или когда объект создаётся на основе интерфейса, вызов метода также определяется динамически.
📌 Пример:
class Animal {
void sound() { System.out.println("Animal sound"); }
}
class Dog extends Animal {
@Override
void sound() { System.out.println("Bark"); }
}
Animal animal = new Dog();
animal.sound(); // Вывод: BarkВ этом коде тип переменной animal определён на этапе компиляции (Animal), но метод sound() вызывается из Dog, потому что объект определяется динамически во время выполнения.
- 👍 10
- 🔥 3
- 👏 1






