Kluczowa różnica - polimorfizm a dziedziczenie w OOP
Programowanie obiektowe (OOP) jest powszechnie używane do tworzenia oprogramowania. Wiele języków programowania obsługuje programowanie obiektowe. Programowanie zorientowane obiektowo to metodologia projektowania programu przy użyciu klas i obiektów. Klasa w OOP jest planem tworzenia obiektu. Klasa ma właściwości i metody. Obiekt jest instancją klasy. OOP obejmuje cztery filary, takie jak dziedziczenie, polimorfizm, abstrakcja i enkapsulacja. W tym artykule omówiono różnicę między polimorfizmem a dziedziczeniem w OOP. Kluczową różnicą między polimorfizmem a dziedziczeniem w OOP jest to, że polimorfizm to zdolność obiektu do zachowywania się na wiele sposobów, a dziedziczenie polega na utworzeniu nowej klasy przy użyciu właściwości i metod istniejącej klasy.
ZAWARTOŚĆ
1. Przegląd i kluczowe różnice
2. Czym jest polimorfizm w OOP
3. Co to jest dziedziczenie w OOP
4. Podobieństwa między polimorfizmem a dziedziczeniem w OOP
5. Porównanie obok siebie - polimorfizm vs dziedziczenie w OOP w formie tabelarycznej
6. Podsumowanie
Co to jest polimorfizm w OOP?
Polimorfizm ma wskazywać na wiele form. Jeden obiekt może mieć wiele zachowań. Polimorfizm można podzielić na dwie kategorie. Są przeciążające i nadrzędne.
Przeciążenie
Zapoznaj się z poniższym programem napisanym w Javie.
Rysunek 01: Przeciążenie
Zgodnie z powyższym programem tworzony jest obiekt typu A. Podczas wywoływania obj.sum (); da wynik związany z metodą sum (). Podczas wywoływania obj.sum (2,3); da wynik związany z sumą (int a, int b). Można zaobserwować, że ten sam obiekt zachowuje się różnie w zależności od sytuacji. Gdy istnieje wiele metod o tej samej nazwie, ale z różnymi parametrami, nazywa się to przeciążaniem. Jest również znany jako statyczne wiązanie lub polimorfizm czasu kompilacji.
Nadrzędny
Nadrzędny jest inny typ polimorfizmu. Zapoznaj się z poniższym programem napisanym w Javie.
Rysunek 02: Zastępowanie
Zgodnie z powyższym programem w klasie A. znajduje się metoda display (). Klasa B rozciąga się od klasy A. Dlatego wszystkie metody w klasie A są dostępne dla klasy B. Jest to dziedziczenie. Koncepcja dziedziczenia zostanie opisana dalej.
Klasa B ma również tę samą metodę display (). Podczas tworzenia obiektu typu A i wywoływania metody wyświetlania, wynik daje B. Metoda wyświetlania klasy A jest zastępowana przez metodę wyświetlania klasy B. Zatem wyjście to B.
Gdy istnieją metody o tej samej nazwie i tych samych parametrach, ale w dwóch różnych klasach i są one połączone z dziedziczeniem, nazywa się to przesłanianiem. Jest również znany jako późne wiązanie, wiązanie dynamiczne, polimorfizm w czasie wykonywania. Przeciążanie i zastępowanie nazywane są polimorfizmem. Jest to główna koncepcja programowania obiektowego.
Co to jest dziedziczenie w OOP?
Zapoznaj się z poniższym programem napisanym w Javie.
Rysunek 03: Przykład dziedziczenia
Zgodnie z powyższym programem klasa A ma metodę sum (), a klasa B ma metodę sub ().
Metoda sum () klasy A może być używana w klasie B za pomocą słowa kluczowego ext. Ponowne użycie właściwości i metod w istniejącej klasie w celu utworzenia nowej klasy jest nazywane dziedziczeniem. Nawet w klasie B nie ma metody sum (); jest dziedziczony z klasy A. Dziedziczenie jest przydatne do ponownego wykorzystania kodu. Starsza klasa nazywana jest klasą bazową, nadklasą lub klasą nadrzędną. Klasa pochodna nazywana jest podklasą lub klasą potomną.
Rodzaje dziedziczenia
Istnieją różne rodzaje dziedziczenia. Są to dziedziczenie jednopoziomowe, dziedziczenie wielopoziomowe, dziedziczenie wielokrotne, dziedziczenie hierarchiczne i dziedziczenie hybrydowe.
Dziedziczenie pojedyncze
W Single Inheritance jest jedna superklasa i jedna podklasa. Jeśli klasa A jest superklasą, a klasa B jest podklasą, wszystkie właściwości i metody klasy A są dostępne dla klasy B. Jest tylko jeden poziom; dlatego nazywa się to dziedziczeniem jednopoziomowym.
Dziedziczenie wielopoziomowe
W dziedziczeniu wielopoziomowym istnieją trzy poziomy klas. Klasa pośrednia dziedziczy po superklasie. Podklasa dziedziczy po klasie pośredniej. Jeśli istnieją trzy klasy, to A, B i C, a A to super klasa, a B to klasa pośrednia. Następnie B dziedziczy po A, a C dziedziczy po B, jest to dziedziczenie wielopoziomowe.
Dziedziczenie wielokrotne
W dziedziczeniu wielokrotnym istnieje wiele superklas i jedna podklasa. Jeśli istnieją trzy superklasy zwane A, B, C i D jest podklasą, to klasa D może dziedziczyć z A, B i C. Wielokrotne dziedziczenie jest obsługiwane w języku programowania C ++. Nie jest obsługiwany w językach programowania, takich jak Java czy C #. Interfejsy służą do implementowania wielokrotnego dziedziczenia w tych językach.
Dziedziczenie hierarchiczne
Jeśli istnieją klasy zwane A jako nadklasy, a B, C są podklasami, te podklasy mogą dziedziczyć właściwości i metody klasy A. Ten rodzaj dziedziczenia jest znany jako dziedziczenie hierarchiczne.
Dziedziczenie hybrydowe
Istnieje inny specjalny typ dziedziczenia, który jest znany jako dziedziczenie hybrydowe. Jest to połączenie dziedziczenia wielopoziomowego i wielokrotnego. Jeśli A, B, C i D są klasami, a B dziedziczy po A, a D dziedziczy zarówno po B, jak i C, to jest to dziedziczenie hybrydowe.
Jakie są podobieństwa między polimorfizmem a dziedziczeniem w OOP?
Obie są koncepcjami programowania obiektowego
Jaka jest różnica między polimorfizmem a dziedziczeniem w OOP?
Porównaj środek artykułu przed tabelą
Polimorfizm a dziedziczenie w OOP |
|
Polimorfizm to zdolność obiektu do zachowywania się na wiele sposobów. | Dziedziczenie polega na utworzeniu nowej klasy przy użyciu właściwości i metod istniejącej klasy. |
Stosowanie | |
Polimorfizm jest używany dla obiektów do wywoływania jakiej formy metody w czasie kompilacji i w czasie wykonywania. | Dziedziczenie służy do ponownego wykorzystania kodu. |
Realizacja | |
W metodach implementowany jest polimorfizm. | Dziedziczenie jest realizowane w klasach. |
Kategorie | |
Polimorfizm można podzielić na przeciążanie i nadpisywanie. | Dziedziczenie można podzielić na dziedziczenie jednopoziomowe, wielopoziomowe, hierarchiczne, hybrydowe i wielokrotne. |
Podsumowanie - Polimorfizm a dziedziczenie w OOP
Polimorfizm i dziedziczenie to główne koncepcje programowania obiektowego. Różnica między polimorfizmem a dziedziczeniem w OOP polega na tym, że polimorfizm jest wspólnym interfejsem dla wielu formularzy, a dziedziczenie polega na utworzeniu nowej klasy przy użyciu właściwości i metod istniejącej klasy. Obie koncepcje są szeroko stosowane w tworzeniu oprogramowania.
Pobierz PDF Polimorfizm a dziedziczenie w OOP
Możesz pobrać wersję PDF tego artykułu i używać jej w trybie offline, zgodnie z notą cytowania. Proszę pobrać wersję PDF tutaj Różnica między polimorfizmem a dziedziczeniem w OOP