Kluczowa różnica – polimorfizm a dziedziczenie w obiektach obiektowych
Programowanie zorientowane obiektowo (OOP) jest powszechnie używane do tworzenia oprogramowania. Wiele języków programowania obsługuje programowanie obiektowe. Programowanie obiektowe to metodologia projektowania programu przy użyciu klas i obiektów. Klasa w OOP to plan tworzenia obiektu. Klasa posiada właściwości i metody. Obiekt jest instancją klasy. OOP zawiera cztery filary, takie jak dziedziczenie, polimorfizm, abstrakcja i enkapsulacja. W tym artykule omówiono różnicę między polimorfizmem a dziedziczeniem w obiektach obiektowych. Kluczowa różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych polega na tym, że polimorfizm to zdolność obiektu do zachowywania się na wiele sposobów, a dziedziczenie to tworzenie nowej klasy przy użyciu właściwości i metod istniejącej klasy.
Co to jest polimorfizm w OOP?
Polimorfizm oznacza wiele form. Jeden obiekt może mieć wiele zachowań. Polimorfizm można podzielić na dwie kategorie. Są przeciążane i nadrzędne.
Przeciążenie
Odnieś się do poniższego programu napisanego 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 obiektu obj.sum(2, 3); da wynik związany z sumą (int a, int b). Można zauważyć, ż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, jest to znane jako przeciążanie. Jest również znany jako wiązanie statyczne lub polimorfizm czasu kompilacji.
Zastępowanie
Inny rodzaj polimorfizmu jest nadrzędny. 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 wywodzi się z klasy A. Dlatego wszystkie metody w klasie A są dostępne dla klasy B. Jest to dziedziczenie. Koncepcja dziedziczenia została opisana w dalszej części.
Klasa B również ma tę samą metodę display(). Podczas tworzenia obiektu typu A i wywoływania metody wyświetlania wynik da B. Metoda wyświetlania klasy A jest zastępowana przez metodę wyświetlania klasy B. Tak więc wyjście to B.
Kiedy 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 nadpisywaniem. Jest również znany jako późne wiązanie, dynamiczne wiązanie, polimorfizm w czasie wykonywania. Przeciążanie i zastępowanie nazywane są polimorfizmem. Jest to główna koncepcja programowania zorientowanego obiektowo.
Co to jest dziedziczenie w obiektach obiektowych?
Odnieś się do poniższego programu napisanego 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 przy użyciu słowa kluczowego extend. Ponowne użycie właściwości i metod w istniejącej klasie w celu utworzenia nowej klasy jest znane jako Dziedziczenie. Nawet nie ma metody sum() w klasie B; 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 klasą podrzędną lub klasą podrzędną.
Rodzaje dziedziczenia
Istnieją różne rodzaje dziedziczenia. Są to dziedziczenie jednopoziomowe, dziedziczenie wielopoziomowe, dziedziczenie wielokrotne, dziedziczenie hierarchiczne i dziedziczenie hybrydowe.
Pojedyncze dziedziczenie
W pojedynczym dziedziczeniu istnieje 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 super klasie. Klasa podrzędna dziedziczy po klasie pośredniej. Jeśli są trzy klasy jako A, B i C, A jest klasą super, a B jest klasą pośrednią. 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 lub C. Interfejsy są używane do implementacji dziedziczenia wielokrotnego w tych językach.
Dziedziczenie hierarchiczne
Jeśli istnieją klasy o nazwie A jako superklasy, 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, 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 po B i C, to jest to dziedziczenie hybrydowe.
Jakie są podobieństwa między polimorfizmem a dziedziczeniem w obiektach obiektowych?
Oba są koncepcjami programowania obiektowego
Jaka jest różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych?
Polimorfizm a dziedziczenie w obiektach obiektowych |
|
Polimorfizm to zdolność obiektu do zachowywania się na wiele sposobów. | Dziedziczenie to tworzenie nowej klasy przy użyciu właściwości i metod istniejącej klasy. |
Użycie | |
Polimorfizm jest używany dla obiektów, które mają być wywoływane w formie metod w czasie kompilacji i w czasie wykonywania. | Dziedziczenie służy do ponownego wykorzystania kodu. |
Wdrożenie | |
Polimorfizm jest zaimplementowany w metodach. | Dziedziczenie jest zaimplementowane w klasach. |
Kategorie | |
Polimorfizm można podzielić na przeciążanie i nadpisywanie. | Dziedziczenie można podzielić na jednopoziomowe, wielopoziomowe, hierarchiczne, hybrydowe i wielokrotne. |
Podsumowanie – Polimorfizm a dziedziczenie w obiektach obiektowych
Polimorfizm i dziedziczenie to główne koncepcje programowania obiektowego. Różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych polega na tym, że polimorfizm jest wspólnym interfejsem dla wielu form, 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 polimorfizm PDF a dziedziczenie w OOP
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 polimorfizmem a dziedziczeniem w OOP