Programowanie obiektowe (OOP) jest głównym paradygmatem w rozwoju oprogramowania. Jest to metodologia projektowania programu z wykorzystaniem klas i obiektów. Klasa jest planem. Opisuje, co powinno zawierać w obiekcie. Definiuje właściwości lub atrybuty oraz metody, z których obiekt powinien się składać. 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 zachowania się na wiele sposobów. Polimorfizm jest podzielony na dwie sekcje, które są przeciążające i zastępujące. W tym artykule omówiono różnicę między nimi w Javie. The kluczowa różnica między przeciążeniem a przesłonięciem w Javie jest to, że Przeciążenie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami, a nadpisywanie polega na zapewnieniu implementacji metody podklasy, która już istnieje w nadklasie.
1. Przegląd i kluczowa różnica
2. Co to jest przeciążenie w Javie
3. Co jest nadpisywane w Javie
4. Podobieństwa między przeciążeniem a zastąpieniem w Javie
5. Porównanie obok siebie - Przeciążenie vs Przesłonięcie w Javie w formie tabelarycznej
6. Podsumowanie
Przeciążenie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami. Zobacz poniższy kod Java.
Rysunek 01: Program Java, który wyjaśnia przeciążenie inną liczbą argumentów
Zgodnie z powyższym programem klasa A zawiera dwie metody o tej samej nazwie. Metoda pierwszej sumy ma dwa parametry. Metoda drugiej sumy ma trzy parametry. Podczas tworzenia obiektu typu A i wywołania sumy (2,3), wywoła metodę sumy z dwoma parametrami, które są sumą (int a, int b) i zwraca 5. Podczas tworzenia obiektu typu A i wywołania sumy (2 , 3,4), wywoła drugą metodę sumy z trzema parametrami, która jest sumą (int a, int b, int c) i zwraca 9.
Nazwa metody jest taka sama, ale liczba parametrów jest inna. Można zauważyć, że ten sam obiekt zachowuje się inaczej. Ta koncepcja jest znana jako przeciążenie. Jest również nazywany Wiązanie statyczne lub Kompiluje polimorfizm czasowy.
Mogą być również przeciążone różnymi typami danych. Zobacz poniższy kod Java.
Rysunek 02: Program Java, który wyjaśnia przeciążenie inną 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ójna podwójna podwójna b) otrzymuje dwie podwójne wartości. Podczas tworzenia obiektu typu A i sumy wywoływania (2,3) wywoła sumę (int a, int b) i zwróci wartość 5. Podczas wywoływania sumy (3.4, 5.6) wywoła sumę (podwójny podwójny b) i zwraca wartość 9,0. W tym przykładzie metody mają tę samą nazwę, ale inny typ zmiennych. Jest to również przeciążenie.
W Javie można budować podklasy z już istniejącymi klasami. Zamiast tworzyć nową klasę od samego początku, można użyć właściwości i metod już istniejącej klasy. Istniejąca klasa jest nadklasą, a klasa pochodna jest podklasą. Gdy podklasa zapewnia implementację metody, która już znajduje się w nadklasie, jest to znane jako przesłonięcie. Zapoznaj się z poniższym programem Java.
Rysunek 03: Program Java do przesłonięcia
Zgodnie z powyższym programem klasa A ma metodę display (). Klasa B rozciąga się od klasy A, więc właściwości i metody klasy A są dostępne dla klasy B. Klasa B ma metodę display () z konkretną implementacją. Podczas tworzenia obiektu typu A i wywoływania metody wyświetlania da wynik wyjściowy B. Mimo że klasa A ma metodę wyświetlania, jest ona nadpisywana jako metoda 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 jako Późne wiązanie, Dynamiczne wiązanie, Polimorfizm runtime.
Overloading vs Overriding in Java | |
Przeciążenie w Javie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami. | Przesłonięcie w Javie zapewnia określoną implementację w metodzie podklasy dla metody już istniejącej w nadklasie. |
Parametry | |
W przypadku przeciążenia metody mają tę samą nazwę, ale inną liczbę parametrów lub inny typ parametrów. | W przypadku przesłonięcia metody mają tę samą nazwę, a parametry muszą być takie same. |
Tematy | |
Przeciążenie występuje w klasie. | Przesłonięcie występuje w obrębie dwóch klas, które mają relację dziedziczenia. |
Synonimy | |
Przeciążenie nazywa się skompilowanym polimorfizmem czasowym. | Przesłanianie nazywa się polimorfizmem w czasie wykonywania. |
Polimorfizm jest ważną koncepcją w programowaniu obiektowym. Zapewnia to obiektowi zachowanie się na wiele sposobów. Może to być albo przeciążenie, albo przesłonięcie. Przeciążenie to polimorfizm w czasie kompilacji, a zastąpienie to polimorfizm w czasie wykonywania. Są przydatne w tworzeniu aplikacji. Różnica między nadpisywaniem a przeciążaniem polega na tym, że przeciążanie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami, a nadpisywanie zapewnia konkretną implementację w metodzie podklasy dla metody już istniejącej w nadklasie. Możliwe jest zaimplementowanie zarówno przeciążenia, jak i przesłonięcia w Javie.
Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z cytatem. Pobierz wersję PDF tutaj Różnica między przeciążeniem a zastąpieniem w Javie
1.tutorialspoint.com. „Przesłanianie Java”. Punkt. Dostępny tutaj
2. „Przeciążenie metod w Javie - Javatpoint”. Dostępny tutaj
3. „Metoda zastępowania w Javie - javatpoint”. Dostępny tutaj