---
title: Связывание
seo:
  title: Связывание — Java Developer
  description: Тема «Связывание» для собеседования Java Developer. Что такое статическое и динамическое связывание?
---

[Все темы Java Developer](/java-developer)

## <strong>Что такое статическое и динамическое связывание?</strong> [#q-14bee738d69b819f981ef77105fe3ab5]

<strong>Статическое связывание</strong> и
<strong>динамическое связывание</strong> — это два способа, с помощью которых
компилятор и интерпретатор определяют, какой код должен быть вызван для
выполнения определенной операции в программе.

#### Статическое связывание&#58;

{/* prettier-ignore */}
- <strong>Определение</strong>&#58; Процесс привязки метода или функции к вызову происходит на этапе компиляции, основываясь на типе объекта или переменной в момент компиляции.

- <strong>Характеристики</strong>&#58;

    - Решение о том, какой метод вызывать, принимается на основе типа переменной, который известен на этапе компиляции.

    - Примеры статического выбора&#58; разрешение перегрузки и вызов static-метода. Известный компилятору тип переменной сам по себе не исключает динамическую диспетчеризацию переопределённого метода экземпляра.

#### Динамическое связывание&#58;

{/* prettier-ignore */}
- <strong>Определение</strong>&#58; Процесс привязки метода или функции к вызову происходит во время выполнения программы, основываясь на типе объекта, на котором происходит вызов.

- <strong>Характеристики</strong>&#58;

    - Решение о том, какой метод вызывать, принимается во время выполнения, исходя из фактического типа объекта, на который ссылается переменная.

    - Примеры&#58; вызов виртуальных методов в Java и C++, вызовы методов через интерфейсы в ООП.

:::note[Ссылки для изучения]

1. [Статическое и динамическое связывание в Java](https://javarush.com/groups/posts/439-razlichija-mezhdu-rannim-i-pozdnim-svjazihvaniem-v-java)
   :::
