Kluczowa różnica - Przeciążanie a zastępowanie w Javie
Programowanie zorientowane obiektowo (OOP) jest głównym paradygmatem 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 i 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 jest podzielony na dwie sekcje, które są przeciążone i nadrzędne. W tym artykule omówiono różnicę między tymi dwoma w Javie. Kluczowa różnica między przeciążaniem a zastępowaniem w Javie polega na tym, że Przeciążanie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami, a Przesłanianie polega na zapewnieniu implementacji metody podklasy, która już istnieje w nadklasie.
ZAWARTOŚĆ
1. Omówienie i kluczowa różnica
2. Co to jest przeciążanie w Javie
3. Co jest nadpisywaniem w Javie
4. Podobieństwa między przeciążaniem a zastępowaniem w Javie
5. Bezpośrednie porównanie - przeciążanie a zastępowanie w Javie w formie tabelarycznej
6. Podsumowanie
Co to jest przeciążanie 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 w języku Java, który wyjaśnia przeciążenie z różną liczbą argumentów
Zgodnie z powyższym programem klasa A zawiera dwie metody o tej samej nazwie. Pierwsza metoda sumy ma dwa parametry. Druga metoda sumy ma trzy parametry. Tworząc obiekt typu A i wywołując sumę (2,3), wywoła metodę sum z dwoma parametrami będącymi sumą (int a, int b) i zwróci 5. Podczas tworzenia obiektu typu A i wywoływania sum (2, 3,4), wywoła drugą metodę sumy z trzema parametrami, którą jest suma (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ż nazywany polimorfizmem statycznego wiązania lub polimorfizmu czasu kompilacji.
Może być również przeciążony różnymi typami danych. Zapoznaj się z poniższym kodem Java.
Rysunek 02: Program w języku Java, który wyjaśnia przeciążenie 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. Podczas wywoływania 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 również jest przeciążenie.
Co to jest nadpisywanie w Javie?
W Javie można budować podklasy z już istniejących klas. Zamiast tworzyć nową klasę od początku, można wykorzystać właściwości i metody już istniejącej klasy. Istniejąca klasa jest nadklasą, a klasa pochodna jest podklasą. Gdy podklasa zapewnia implementację metody, która znajduje się już w nadklasie, nazywa się to przesłonięciem. Zapoznaj się z poniższym programem Java.
Rysunek 03: Program Java do nadpisywania
Zgodnie z powyższym programem klasa A ma metodę display (). Klasa B rozszerza się z klasy A, więc właściwości i metody klasy A są dostępne dla klasy B. Klasa B ma metodę display () z określoną implementacją. Tworząc obiekt typu A i wywołując metodę wyświetlania, da wynik B. Mimo że klasa A ma metodę wyświetlania, jest ona nadpisywana jako metoda wyświetlania klasy B. Podklasa implementuje metodę, która już istnieje w nadklasie.
Ta koncepcja jest rodzajem polimorfizmu i nazywana jest nadrzędną. Jest również nazywany późnym wiązaniem, wiązaniem dynamicznym, polimorfizmem w czasie wykonywania.
Jakie są podobieństwa między przeciążaniem a zastępowaniem w Javie?
- Oba są typami polimorfizmu.
- W przypadku przeciążania i zastępowania metody mają tę samą nazwę.
Jaka jest różnica między przeciążaniem a zastępowaniem w Javie?
Porównaj środek artykułu przed tabelą
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. | Zastępowanie w Javie polega na zapewnieniu określonej implementacji 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. | Przy zastępowaniu metody mają tę samą nazwę, a parametry muszą być takie same. |
Motywy | |
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 jest nazywane polimorfizmem w czasie wykonywania. |
Podsumowanie - Przeciążanie a zastępowanie w Javie
Polimorfizm jest głównym pojęciem w programowaniu obiektowym. Zapewnia obiektowi możliwość zachowywania 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 zastępowaniem a przeciążaniem polega na tym, że Przeciążanie to możliwość tworzenia wielu metod o tej samej nazwie z różnymi implementacjami, a Przesłanianie polega na zapewnieniu określonej implementacji metody podklasy dla metody już istniejącej w nadklasie. W Javie można zaimplementować zarówno przeciążanie, jak i zastępowanie.
Pobierz plik PDF Overloading vs Overriding in Java
Możesz pobrać wersję PDF tego artykułu i używać jej w trybie offline, zgodnie z notą cytowania. Pobierz wersję PDF tutaj. Różnica między przeciążaniem a zastępowaniem w Javie