Kluczowa różnica – przeciążanie a zastępowanie w Javie
Programowanie zorientowane obiektowo (OOP) to główny paradygmat w tworzeniu oprogramowania. Jest to metodologia projektowania programu przy użyciu klas i obiektów. Klasa to plan. Opisuje, co powinno zawierać obiekt. Definiuje właściwości lub atrybuty oraz metody, z których powinien składać się obiekt. Dlatego obiekt jest instancją klasy. Te obiekty komunikują się z innymi obiektami. Jedną z głównych koncepcji OOP jest polimorfizm. Jest to zdolność obiektu do zachowywania się na wiele sposobów. Polimorfizm dzieli się na dwie sekcje, które są przeciążające i nadrzędne. W tym artykule omówiono różnicę między tymi dwoma w Javie. Kluczową różnicą między przeciążaniem a zastępowaniem w Javie jest to, że Overloading to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami, a Overriding polega na zapewnieniu implementacji metody podklasy, która już istnieje w nadklasie.
Co to jest przeciążenie w Javie?
Przeciążanie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami. Zapoznaj się z poniższym kodem Java.
Rysunek 01: Program Java wyjaśniający przeciążanie z różną liczbą argumentów
Zgodnie z powyższym programem klasa A zawiera dwie metody o tej samej nazwie. Pierwsza metoda sumowania ma dwa parametry. Druga metoda sumowania ma trzy parametry. Tworząc obiekt typu A i wywołując sum(2, 3), wywoła metodę sum z dwoma parametrami, którymi są sum(int a, int b) i zwraca 5. Podczas tworzenia obiektu typu A i wywołania sum(2, 3, 4), wywoła drugą metodę sum z trzema parametrami, czyli sumą (int a, int b, int c) i zwróci 9.
Nazwa metody jest taka sama, ale liczba parametrów jest inna. Można zaobserwować, że ten sam obiekt zachowuje się inaczej. Ta koncepcja jest znana jako przeciążenie. Jest również określany jako wiązanie statyczne lub polimorfizm czasu kompilacji.
Może być również przeciążony różnymi typami danych. Zapoznaj się z poniższym kodem Java.
Rysunek 02: Program Java wyjaśniający przeciążanie z różną liczbą argumentów
Zgodnie z powyższym programem klasa A składa się z dwóch metod o tej samej nazwie. Metoda sum(int a, int b) otrzymuje dwie wartości całkowite. Suma (podwójne podwójne b) otrzymuje dwie podwójne wartości. Tworząc obiekt typu A i wywołując sum(2, 3), wywoła sum(int a, int b) i zwróci wartość 5. Wywołując sum(3.4, 5.6), wywoła sum(double a double b) i zwróć wartość 9,0. W tym przykładzie metody mają tę samą nazwę, ale inny typ zmiennych. To też jest przeciążenie.
Co to jest zastępowanie w Javie?
W Javie możliwe jest budowanie podklas z już istniejących klas. Zamiast tworzyć nową klasę od początku, można skorzystać z właściwości i metod już istniejącej klasy. Istniejąca klasa to superklasa, a klasa pochodna to podklasa. Gdy podklasa udostępnia implementację metody, która już znajduje się w nadklasie, nazywa się to nadpisywaniem. Zapoznaj się z poniższym programem Java.
Rysunek 03: Program Java do zastąpienia
Według powyższego programu, klasa A posiada metodę display(). Klasa B wywodzi się z klasy A, więc właściwości i metody klasy A są dostępne dla klasy B. Klasa B posiada metodę display() z określoną implementacją. Podczas tworzenia obiektu typu A i wywoływania metody wyświetlania zwróci wynik B. Mimo że klasa A ma metodę wyświetlania, jest ona zastępowana metodą wyświetlania klasy B. Podklasa implementuje metodę już istniejącą w nadklasie.
Ta koncepcja jest rodzajem polimorfizmu i jest znana jako nadpisywanie. Jest również nazywany późnym wiązaniem, dynamicznym wiązaniem, polimorfizmem w czasie wykonywania.
Jakie są podobieństwa między przeciążaniem a nadpisywaniem w Javie?
- Oba są rodzajem polimorfizmu.
- Podczas przeciążania i zastępowania metody mają tę samą nazwę.
Jaka jest różnica między przeciążaniem a nadpisywaniem w Javie?
Przeciążanie a zastępowanie w Javie |
|
Przeciążanie w Javie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami. | Nadpisywanie w Javie zapewnia konkretną implementację w metodzie podklasy dla metody już istniejącej w nadklasie. |
Parametry | |
Podczas przeciążania metody mają tę samą nazwę, ale inną liczbę parametrów lub inny typ parametrów. | W zastępowaniu metody mają tę samą nazwę, a parametry muszą być takie same. |
Tematy | |
W klasie występuje przeciążenie. | Zastępowanie występuje w dwóch klasach, które mają relację dziedziczenia. |
Synonimy | |
Przeciążanie nazywa się polimorfizmem czasu kompilacji. | Zastępowanie nazywa się polimorfizmem w czasie wykonywania. |
Podsumowanie – Przeciążanie vs zastępowanie w Javie
Polimorfizm to główna koncepcja programowania zorientowanego obiektowo. Umożliwia obiektowi zachowywanie się na wiele sposobów. Może to być przeciążenie lub nadpisanie. Przeciążanie to polimorfizm w czasie kompilacji, a nadpisywanie to polimorfizm w czasie wykonywania. Są przydatne w tworzeniu aplikacji. Różnica między nadpisywaniem a przeciążaniem polega na tym, że Overloading to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami, a Overriding zapewnia konkretną implementację w metodzie podklasy dla metody już istniejącej w nadklasie. Możliwe jest zaimplementowanie zarówno przeciążania, jak i nadpisywania w Javie.
Pobierz plik PDF Przeciążanie a zastępowanie w Javie
Możesz pobrać wersję PDF tego artykułu i używać jej do celów offline zgodnie z notatką cytowania. Proszę pobrać wersję PDF tutaj Różnica między przeciążaniem a nadpisywaniem w Javie