Skirtumas tarp OOP polimorfizmo ir paveldėjimo

Turinys:

Skirtumas tarp OOP polimorfizmo ir paveldėjimo
Skirtumas tarp OOP polimorfizmo ir paveldėjimo

Video: Skirtumas tarp OOP polimorfizmo ir paveldėjimo

Video: Skirtumas tarp OOP polimorfizmo ir paveldėjimo
Video: Inheritance vs Polymorphism | Inheritance and Polymorphism Differences in OOP 2024, Gruodis
Anonim

Pagrindinis skirtumas – OOP polimorfizmas ir paveldėjimas

Objektinis programavimas (OOP) dažniausiai naudojamas kuriant programinę įrangą. Daugelis programavimo kalbų palaiko objektinį programavimą. Objektinis programavimas yra metodika, skirta kurti programą naudojant klases ir objektus. OOP klasė yra objekto kūrimo projektas. Klasė turi savybių ir metodų. Objektas yra klasės egzempliorius. OOP sudaro keturi ramsčiai, tokie kaip paveldėjimas, polimorfizmas, abstrakcija ir inkapsuliavimas. Šiame straipsnyje aptariamas skirtumas tarp OOP polimorfizmo ir paveldėjimo. Pagrindinis skirtumas tarp OOP polimorfizmo ir paveldėjimo yra tas, kad polimorfizmas yra objekto gebėjimas elgtis įvairiais būdais, o paveldėjimas yra sukurti naują klasę naudojant esamos klasės savybes ir metodus.

Kas yra OOP polimorfizmas?

Polimorfizmas reiškia kelias formas. Vienas objektas gali turėti keletą elgsenų. Polimorfizmą galima suskirstyti į dvi kategorijas. Jie perkraunami ir nepaisomi.

Perkrovimas

Žiūrėkite toliau pateiktą programą, parašytą Java.

Skirtumas tarp polimorfizmo ir paveldėjimo OOP
Skirtumas tarp polimorfizmo ir paveldėjimo OOP

01 pav.: Perkrova

Pagal aukščiau pateiktą programą sukuriamas A tipo objektas. Skambinus obj.sum(); jis duos išvestį, susijusį su metodu sum (). Iškviečiant obj.sum(2, 3); jis duos išvestį, susijusį su suma (int a, int b). Galima pastebėti, kad tas pats objektas, priklausomai nuo situacijos, elgiasi skirtingai. Kai yra keli metodai tuo pačiu pavadinimu, bet skirtingais parametrais, tai vadinama perkrovimu. Jis taip pat žinomas kaip statinis įrišimas arba kompiliavimo laiko polimorfizmas.

Nepaisoma

Kitas polimorfizmo tipas yra svarbesnis. Žiūrėkite toliau pateiktą programą, parašytą Java.

Skirtumas tarp polimorfizmo ir paveldėjimo OOP_02 pav
Skirtumas tarp polimorfizmo ir paveldėjimo OOP_02 pav

02 paveikslas: nepaisymas

Pagal pirmiau pateiktą programą, A klasėje yra metodas display(). B klasė tęsiasi nuo A klasės. Todėl visus A klasės metodus gali pasiekti B klasė. Tai yra paveldėjimas. Paveldėjimo sąvoka išsamiau aprašyta vėliau.

B klasė taip pat turi tą patį rodymo metodą(). Kuriant A tipo objektą ir iškviečiant rodymo metodą, išvestis duos B. A klasės rodymo metodą nepaiso B klasės rodymo metodas. Taigi, išvestis yra B.

Kai yra metodų tuo pačiu pavadinimu ir tais pačiais parametrais, bet dviejose skirtingose klasėse, ir jie yra susieti su paveldėjimu, tai vadinama nepaisymu. Jis taip pat žinomas kaip vėlyvas įrišimas, dinaminis įrišimas, vykdymo trukmės polimorfizmas. Perkrovimas ir nepaisymas vadinami polimorfizmu. Tai pagrindinė objektinio programavimo koncepcija.

Kas yra OOP paveldėjimas?

Žiūrėkite toliau pateiktą programą, parašytą Java.

Pagrindinis skirtumas tarp OOP polimorfizmo ir paveldėjimo
Pagrindinis skirtumas tarp OOP polimorfizmo ir paveldėjimo

03 pav. Paveldėjimo pavyzdys

Pagal aukščiau pateiktą programą, A klasė turi metodą sum(), o B klasė turi metodą sub().

A klasės metodas suma() gali būti naudojamas B klasėje naudojant išplėstinį raktinį žodį. Pakartotinis esamos klasės ypatybių ir metodų naudojimas kuriant naują klasę yra žinomas kaip paveldėjimas. Netgi B klasėje nėra sum() metodo; jis yra paveldėtas iš A klasės. Paveldėjimas naudingas kodo pakartotiniam naudojimui. Senesnė klasė vadinama bazine, superklase arba pirmine klase. Išvestinė klasė vadinama poklasiu arba antrine klase.

Paveldėjimo tipai

Yra įvairių paveldėjimo tipų. Tai yra vieno lygio paveldėjimas, kelių lygių paveldėjimas, daugiapakopis paveldėjimas, hierarchinis paveldėjimas ir hibridinis paveldėjimas.

Vienas paveldėjimas

Single Inheritance yra viena super klasė ir viena poklasė. Jei A klasė yra superklasė, o klasė B yra poklasė, visos A klasės savybės ir metodai yra prieinami B klasei. Yra tik vienas lygis; todėl jis vadinamas vieno lygio paveldėjimu.

Kelių lygių paveldėjimas

Kelių lygių paveldėjimo sistemoje yra trys klasių lygiai. Tarpinė klasė paveldima iš super klasės. Poklasis paveldi iš tarpinės klasės. Jei yra trys klasės A, B ir C, o A yra super klasė, o B yra tarpinė klasė. Tada B paveldi iš A, o C paveldi iš B, tai yra kelių lygių paveldėjimas.

Kelias paveldėjimas

Kiekvieno paveldėjimo sistemoje yra daug superklasių ir viena poklasė. Jei yra trys super klasės, vadinamos A, B, C ir D yra poklasis, tada D klasė gali būti paveldima iš A, B ir C. Programavimo kalba C++ palaikomas daugialypis paveldėjimas. Jis nepalaikomas tokiomis programavimo kalbomis kaip Java arba C. Sąsajos naudojamos kelių paveldėjimo funkcijai įgyvendinti šiomis kalbomis.

Hierarchinis paveldėjimas

Jei yra klasės, vadinamos A kaip super klasės, o B, C yra poklasės, šios poklasės gali paveldėti A klasės savybes ir metodus. Toks paveldėjimo tipas žinomas kaip hierarchinis paveldėjimas.

Hibridinis paveldėjimas

Yra ir kitas specialus paveldėjimo tipas, žinomas kaip hibridinis paveldėjimas. Tai kelių lygių ir kelių paveldėjimo derinys. Jei A, B, C ir D yra klasės, o B paveldi iš A, o D – iš B ir C, tai yra hibridinis paveldėjimas.

Kokie yra OOP polimorfizmo ir paveldėjimo panašumai?

Abu yra objektinio programavimo sąvokos

Kuo skiriasi OOP polimorfizmas ir paveldėjimas?

OOP polimorfizmas prieš paveldėjimą

Polimorfizmas – tai objekto gebėjimas elgtis įvairiais būdais. Paveldėjimas – tai naujos klasės kūrimas naudojant esamos klasės ypatybes ir metodus.
Naudojimas
Polimorfizmas naudojamas objektams iškviesti, kokios formos metodus kompiliavimo metu ir vykdymo metu. Paveldėjimas naudojamas kodo pakartotiniam naudojimui.
Įdiegimas
Polimorfizmas įgyvendinamas metoduose. Paveldėjimas įgyvendinamas klasėse.
Kategorijos
Polimorfizmą galima suskirstyti į perkrovimą ir nepaisymą. Paveldėjimą galima suskirstyti į vieno lygio, kelių lygių, hierarchinį, hibridinį ir daugialypį paveldėjimą.

Santrauka – OOP polimorfizmas prieš paveldėjimą

Polimorfizmas ir paveldėjimas yra pagrindinės objektinio programavimo sąvokos. Skirtumas tarp OOP polimorfizmo ir paveldėjimo yra tas, kad polimorfizmas yra bendra sąsaja su keliomis formomis, o paveldėjimas yra naujos klasės kūrimas naudojant esamos klasės savybes ir metodus. Abi sąvokos plačiai naudojamos programinės įrangos kūrime.

Atsisiųskite PDF polimorfizmas prieš paveldėjimą OOP

Galite atsisiųsti šio straipsnio PDF versiją ir naudoti ją neprisijungus, kaip nurodyta citatos pastaboje. Atsisiųskite PDF versiją čia. Skirtumas tarp polimorfizmo ir paveldėjimo OOP

Rekomenduojamas: