Różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych

Spisu treści:

Różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych
Różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych

Wideo: Różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych

Wideo: Różnica między polimorfizmem a dziedziczeniem w obiektach obiektowych
Wideo: Fundamental Concepts of Object Oriented Programming 2024, Grudzień
Anonim

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.

Różnica między polimorfizmem a dziedziczeniem w OOP
Różnica między polimorfizmem a dziedziczeniem w OOP

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.

Różnica między polimorfizmem a dziedziczeniem w OOP_Rysunek 02
Różnica między polimorfizmem a dziedziczeniem w OOP_Rysunek 02

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.

Kluczowa różnica między polimorfizmem a dziedziczeniem w OOP
Kluczowa różnica między polimorfizmem a dziedziczeniem w OOP

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

Zalecana: