Разница между ранним и поздним связыванием

Ключевая разница - рано Позднее связывание
 

Раннее связывание и Позднее связывание - это две концепции, связанные с полиморфизмом. Раннее связывание происходит во время компиляции, в то время как позднее связывание происходит во время выполнения. ключевое отличие между ранним и поздним связыванием является то, что Раннее связывание использует информацию класса для разрешения вызова метода, в то время как позднее связывание использует объект для разрешения вызова метода.

Языки программирования, такие как Java, поддерживают объектно-ориентированное программирование (ООП). Это парадигма, которая позволяет строить программу или программное обеспечение с использованием объектов. В программном обеспечении есть несколько объектов. Эти объекты связаны друг с другом и передают сообщения с использованием методов. Каждый объект имеет характеристики и поведение. Характеристики описываются свойствами или атрибутами. Поведения описаны с использованием методов. Объект Student может иметь такие характеристики, как имя, возраст, и они представлены свойствами. Объект Студент может иметь такие поведения, как учеба и чтение, и они представлены методами. Одним из основных элементов ООП является полиморфизм. Это позволяет объекту вести себя несколькими способами. Раннее связывание и Позднее связывание - две концепции полиморфизма. Методы перегрузки связаны с использованием раннего связывания. Переопределенные методы связаны с использованием позднего связывания.

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое раннее связывание
3. Что такое поздний переплет
4. Сходство между ранним и поздним связыванием
5. Сравнение бок о бок - раннее или позднее связывание в табличной форме
6. Резюме

Что такое раннее связывание?

В раннем связывании информация о классе используется для разрешения вызова метода. Раннее связывание происходит во время компиляции. Это также известно как статическое связывание. В этом процессе привязка происходит до того, как программа действительно запустится. Методы перегрузки связаны с использованием раннего связывания. См. Ниже программу.

Рисунок 01: Класс расчета

Рисунок 02: Основная программа для раннего связывания

В соответствии с вышеуказанной программой класс Calculation содержит метод add, который принимает два целочисленных значения, и еще один метод add, который принимает два двойных значения. В основной программе создается объект типа Расчет. При передаче двух целых чисел в метод add он вызывает метод add, который принимает два целых числа. При передаче двух двойных значений в метод add он вызывает метод, соответствующий двум двойным значениям. Этот процесс связывания происходит во время компиляции. Вся необходимая информация известна до выполнения, поэтому она повышает эффективность и скорость выполнения программы..

Что такое Позднее связывание?

В позднем связывании объект используется для разрешения вызова метода. Позднее связывание происходит во время выполнения. Это также известно как динамическое связывание. В этом процессе привязка происходит при выполнении программы. Переопределенные методы связаны с использованием позднего связывания. См. Ниже программу.

Рисунок 03: Класс Shape

Рисунок 04: Круг

Рисунок 05: Класс треугольника

Рисунок 06: Основная программа для позднего связывания

Согласно приведенной выше программе, класс Shape имеет метод draw. Класс Circle и класс Triangle расширяют класс Shape. Следовательно, эти два класса могут наследовать атрибуты и методы класса Shape. Shape Class является базовым классом. Классы Circle и Triangle являются производными классами. Класс Circle и класс Triangle также имеют метод draw со своими собственными реализациями. Таким образом, метод draw в классе Shape переопределяется методами draw производных классов..

В основной программе создается ссылочная переменная s типа Shape. Во время компиляции компилятор будет ссылаться только на метод рисования базового класса. Во время выполнения будут выполняться различные методы рисования. Сначала s укажет на объект типа Shape. Итак, вызывается метод draw класса Shape. Затем s укажет на объект типа Circle и вызовет метод draw класса Circle. Наконец, s укажет на объект типа Triangle и вызовет метод draw в классе Triangle. Методы вызываются в зависимости от объектов. Следовательно, объект используется для разрешения вызова метода в поздней привязке. Информация, необходимая для привязки, предоставляется во время выполнения, поэтому скорость выполнения ниже по сравнению с ранней привязкой..

В чем сходство между ранним и поздним связыванием?

  • Как Раннее связывание, так и Позднее связывание связаны с полиморфизмом, который является основой ООП.

В чем разница между ранним и поздним связыванием?

Раннее связывание против позднего связывания

Процесс использования информации о классе для разрешения вызова метода, который происходит во время компиляции, называется Раннее связывание.. Процесс использования объекта для разрешения вызова метода, который происходит во время выполнения, называется поздним связыванием.
 Время связывания
Раннее связывание происходит во время компиляции. Позднее связывание происходит во время выполнения.
функциональность
Раннее связывание использует информацию о классе для разрешения вызова метода. Позднее связывание использует объект для разрешения вызова метода.
 Синонимы
Раннее связывание также известно как статическое связывание ... Позднее связывание также известно как динамическое связывание.
Вхождение
Методы перегрузки связаны с использованием раннего связывания. Переопределенные методы связаны с использованием позднего связывания.
Скорость выполнения
Скорость исполнения быстрее в раннем связывании. Скорость исполнения ниже в конце связывания.

Резюме - Раннее Позднее связывание

ООП обычно используется для разработки программного обеспечения. Одним из основных элементов ООП является полиморфизм. Раннее связывание и позднее связывание связаны с этим. Раннее связывание происходит во время компиляции, в то время как позднее связывание происходит во время выполнения. При перегрузке метода связывание происходит с использованием раннего связывания. В переопределении метода связывание происходит с использованием позднего связывания. Разница между ранним и поздним связыванием заключается в том, что раннее связывание использует информацию класса для разрешения вызова метода, в то время как позднее связывание использует объект для разрешения вызова метода.

Ссылка:

1.Java Интервью 04 - Статическое связывание против динамического связывания, Махика Учебники, 27 декабря 2017 года. Доступно здесь
2.Диспетчеризация динамических методов в Java | Базовое руководство по Java | Studytonight. Доступна здесь