Раннее связывание и Позднее связывание - это две концепции, связанные с полиморфизмом. Раннее связывание происходит во время компиляции, в то время как позднее связывание происходит во время выполнения. ключевое отличие между ранним и поздним связыванием является то, что Раннее связывание использует информацию класса для разрешения вызова метода, в то время как позднее связывание использует объект для разрешения вызова метода.
Языки программирования, такие как 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. Доступна здесь