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. Główną różnicą między wczesnym i późnym wiązaniem jest to, że wczesne wiązanie używa informacji o klasie do rozpoznawania wywołań metody, podczas gdy późne wiązanie używa obiektu do rozwiązywania wywołań metody.
Języki programowania, takie jak Java, obsługują programowanie obiektowe (OOP). Jest to paradygmat, który umożliwia konstruowanie programu lub oprogramowania przy użyciu obiektów. Oprogramowanie zawiera wiele obiektów. Obiekty te są ze sobą połączone i przekazują komunikaty za pomocą metod. Każdy przedmiot ma cechy i zachowania. Cechy są opisane przez właściwości lub atrybuty. Zachowania opisano metodami. Obiekt Student może mieć cechy takie jak imię, wiek i są one reprezentowane przez właściwości. Obiekt Student może mieć zachowania, takie jak nauka i czytanie, i 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ążania są łączone za pomocą wczesnego wiązania. Nadpisane metody są łączone przy użyciu późnego wiązania.
ZAWARTOŚĆ
1. Przegląd i kluczowe różnice
2. Co to jest wczesne wiązanie
3. Co to jest późne wiązanie
4. Podobieństwa między wczesnym i późnym wiązaniem
5. Porównanie bezpośrednie - wczesne i późne wiązanie w formie tabelarycznej
6. Podsumowanie
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ążania są łączone za pomocą wczesnego wiązania. Zapoznaj się z poniższym programem.
Rysunek 01: Klasa obliczeń
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 double. W programie głównym tworzony jest obiekt typu Obliczenia. Podczas przekazywania dwóch liczb całkowitych do metody add wywoła metodę add, która akceptuje dwie liczby całkowite. Przekazując dwie podwójne wartości do metody add, wywoła ona metodę odpowiadającą dwóm podwójnym wartościom. Ten proces wiązania występuje w czasie kompilacji. Wszystkie wymagane informacje są znane przed uruchomieniem, co zwiększa 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ń metod. Późne wiązanie występuje w czasie wykonywania. Jest również znany jako wiązanie dynamiczne. W tym procesie wią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łtu
Rysunek 04: Klasa Circle
Rysunek 05: Klasa trójkąta
Rysunek 06: Główny program do późnego wiązania
Zgodnie z powyższym programem klasa Shape posiada metodę rysowania. Klasa Circle i klasa Triangle stanowią rozszerzenie klasy 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. Klasa Circle i klasa Triangle również mają metodę draw z własnymi implementacjami. Tak więc metoda draw w klasie Shape jest zastępowana przez metody draw klas pochodnych.
W programie głównym tworzona jest zmienna referencyjna s typu Shape. W czasie kompilacji kompilator odwołuje się tylko do metody rysowania klasy bazowej. W czasie wykonywania będą wykonywane różne metody rysowania. Najpierw s wskaże obiekt typu Shape. Wywoływana jest więc metoda rysowania klasy Shape. Następnie s wskażą obiekt typu Circle i wywołają metodę draw klasy Circle. Na koniec s wskaże obiekt typu Triangle i wywoła metodę draw w klasie Triangle. Metody są wywoływane w zależności od obiektów. W związku z tym obiekt jest używany do rozpoznawania wywołań metody w późnym wiązaniu. Informacje wymagane do powiązania są dostarczane w czasie wykonywania, więc szybkość wykonywania jest wolniejsza w porównaniu z wczesnym wiązaniem.
Jakie jest podobieństwo między wczesnym wiązaniem a późnym wiązaniem?
Zarówno wczesne wiązanie, jak i późne wiązanie są związane z polimorfizmem, który jest filarem OOP
Jaka jest różnica między wczesnym wiązaniem a późnym wiązaniem?
Porównaj środek artykułu przed tabelą
Wczesne wiązanie vs późne wiązanie |
|
Proces używania informacji o klasie do rozwiązywania wywołań metod, które występuje w czasie kompilacji, nazywany jest wczesnym wiązaniem. | Proces używania obiektu do rozwiązywania wywołań metody, które występuje w czasie wykonywania, nazywany jest późnym wiązaniem. |
Czas wiązania | |
Wczesne wiązanie odbywa się w czasie kompilacji. | Późne wiązanie odbywa się w czasie wykonywania. |
Funkcjonalność | |
Early Binding używa informacji o klasie do rozwiązywania wywołań metod. | Późne wiązanie używa obiektu do rozpoznania 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ępowanie | |
Metody przeciążania są łączone za pomocą wczesnego wiązania. | Nadpisane metody są łączone przy użyciu późnego wiązania. |
Szybkość wykonania | |
Szybkość wykonywania jest szybsza we wczesnym wiązaniu. | Szybkość wykonania jest niższa w przypadku późnego wiązania. |
Podsumowanie - wczesne i 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 powiązane. Wczesne wiązanie występuje w czasie kompilacji, podczas gdy późne wiązanie występuje w czasie wykonywania. W przypadku przeciążenia metody, łączenie odbywa się za pomocą wczesnego wiązania. W przypadku nadpisywania metody łączenie 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 rozpoznawania wywołań metody, podczas gdy późne wiązanie używa obiektu do rozpoznawania wywołania metody.