Kluczowa różnica – wczesne i późne wiązanie
Wczesne wiązanie i późne wiązanie to dwie koncepcje związane z polimorfizmem. Wczesne wiązanie występuje w czasie kompilacji, podczas gdy późne wiązanie występuje w czasie wykonywania. Kluczowa różnica między wczesnym i późnym wiązaniem polega na tym, że wczesne wiązanie wykorzystuje informacje o klasie do rozwiązania wywołania metody, podczas gdy późne wiązanie używa obiektu do rozwiązania wywołania metody.
Języki programowania, takie jak Java, obsługują programowanie zorientowane obiektowo (OOP). Jest to paradygmat pozwalający na konstruowanie programu lub oprogramowania przy użyciu obiektów. W oprogramowaniu jest wiele obiektów. Obiekty te są ze sobą połączone i przekazują komunikaty za pomocą metod. Każdy przedmiot ma cechy i zachowania. Charakterystyki są opisane przez właściwości lub atrybuty. Zachowania są opisane za pomocą metod. Obiekt Student może posiadać cechy takie jak imię, wiek i są reprezentowane przez właściwości. Przedmiot Uczeń może mieć zachowania takie jak uczenie się i czytanie, a są one reprezentowane przez metody. Jednym z głównych filarów OOP jest polimorfizm. Pozwala obiektowi zachowywać się na wiele sposobów. Wczesne wiązanie i późne wiązanie to dwie koncepcje w polimorfizmie. Metody przeciążeniowe są wiązane za pomocą wczesnego wiązania. Zastąpione metody są łączone przy użyciu późnego wiązania.
Co to jest wczesne wiązanie?
We wczesnym wiązaniu informacje o klasie są używane do rozwiązywania wywołań metod. Wczesne wiązanie występuje w czasie kompilacji. Jest również znany jako wiązanie statyczne. W tym procesie wiązanie następuje przed faktycznym uruchomieniem programu. Metody przeciążeniowe są wiązane za pomocą wczesnego wiązania. Zapoznaj się z poniższym programem.
Rysunek 01: Klasa obliczeniowa
Rysunek 02: Główny program wczesnego wiązania
Zgodnie z powyższym programem, klasa Calculation zawiera metodę add, która akceptuje dwie wartości całkowite oraz inną metodę add, która akceptuje dwie wartości podwójne. W programie głównym tworzony jest obiekt typu Obliczenie. Przekazując dwie liczby całkowite do metody add, wywoła ona metodę add, która akceptuje dwie liczby całkowite. Przekazując dwie wartości double do metody add, wywoła ona metodę odpowiadającą dwóm wartościom double. Ten proces wiązania odbywa się w czasie kompilacji. Wszystkie wymagane informacje są znane przed uruchomieniem, dzięki czemu zwiększa się wydajność programu i szybkość wykonywania.
Co to jest późne wiązanie?
W późnym wiązaniu obiekt jest używany do rozwiązywania wywołań metody. Późne wiązanie występuje w czasie wykonywania. Jest również znany jako wiązanie dynamiczne. W tym procesie powiązanie następuje podczas wykonywania programu. Nadpisane metody są łączone przy użyciu późnego wiązania. Zapoznaj się z poniższym programem.
Rysunek 03: Klasa kształtów
Rysunek 04: Klasa okręgu
Rysunek 05: Klasa trójkąta
Rysunek 06: Główny program dla późnego wiązania
Zgodnie z powyższym programem klasa Shape posiada metodę rysowania. Class Circle i klasa Triangle rozszerza klasę Shape. Dlatego te dwie klasy mogą dziedziczyć atrybuty i metody klasy Shape. Klasa kształtu jest klasą bazową. Klasy Circle i Triangle są klasami pochodnymi. Klasy Circle i Triangle mają również metodę draw z własnymi implementacjami. Tak więc metoda rysowania w klasie Shape jest zastępowana przez metody rysowania klas pochodnych.
W programie głównym tworzona jest zmienna referencyjna typu Shape. W czasie kompilacji kompilator będzie odwoływał się tylko do metody rysowania klasy bazowej. W czasie wykonywania zostaną wykonane różne metody rysowania. Najpierw s wskaże obiekt typu Shape. Tak więc wywoływana jest metoda rysowania klasy Shape. Następnie s wskaże obiekt typu Circle i wywoła metodę rysowania klasy Circle. Na koniec s wskaże obiekt typu Triangle i wywoła metodę rysowania w klasie Triangle. Metody są wywoływane w zależności od obiektów. W związku z tym obiekt jest używany do rozwiązywania wywoływania metod w późnym wiązaniu. Informacje wymagane do wiązania są dostarczane w czasie wykonywania, więc szybkość wykonania jest mniejsza w porównaniu z wczesnym wiązaniem.
Jakie jest podobieństwo między wczesnym i późnym wiązaniem?
Zarówno wczesne, jak i późne wiązanie są związane z polimorfizmem, który jest filarem OOP
Jaka jest różnica między wczesnym i późnym wiązaniem?
Wczesne wiązanie a późne wiązanie |
|
Proces użycia informacji o klasie do rozwiązania wywołania metody, który ma miejsce w czasie kompilacji, nazywa się Early Binding. | Proces użycia obiektu do rozwiązania wywołania metody, który ma miejsce w czasie wykonywania, nazywa się późnym wiązaniem. |
Czas wiązania | |
Wczesne wiązanie ma miejsce w czasie kompilacji. | Późne wiązanie ma miejsce w czasie wykonywania. |
Funkcjonalność | |
Wczesne wiązanie używa informacji o klasie do rozwiązania wywołania metody. | Późne wiązanie używa obiektu do rozwiązania wywołania metody. |
Synonimy | |
Wczesne wiązanie jest również znane jako wiązanie statyczne.. | Późne wiązanie jest również znane jako wiązanie dynamiczne. |
Wystąpienie | |
Metody przeciążania są łączone przy użyciu wczesnego wiązania. | Zastąpione metody są łączone przy użyciu późnego wiązania. |
Prędkość wykonania | |
Prędkość wykonania jest szybsza we wczesnym wiązaniu. | Prędkość wykonywania jest niższa w późnym wiązaniu. |
Podsumowanie – wczesne vs późne wiązanie
OOP jest powszechnie używany do tworzenia oprogramowania. Jednym z głównych filarów OOP jest polimorfizm. Wczesne wiązanie i późne wiązanie są z tym związane. Wczesne wiązanie występuje w czasie kompilacji, podczas gdy późne wiązanie występuje w czasie wykonywania. W przeciążaniu metod wiązanie odbywa się za pomocą wczesnego wiązania. W zastępowaniu metody wiązanie odbywa się za pomocą późnego wiązania. Różnica między wczesnym i późnym wiązaniem polega na tym, że wczesne wiązanie używa informacji o klasie do rozwiązywania wywoływania metod, podczas gdy późne wiązanie używa obiektu do rozwiązywania wywołania metody.