Nämä kaksi pyrkivät jäljittelemään todellisia kohteita ja helpottavat kehittäjien kykyä kirjoittaa koodia, joka kattaa sen maailmankuvan, jossa he luovat koodia.
Oliokeskeisellä koodauksella on neljä perusideaa: periytyminen, abstraktiot, polymorfismi ja rajoittuminen. Kuten aiemmin todettiin, jokaista käsitettä voidaan pitää minkä tahansa nykykielen perustana.
Keskeiset ostokset
- Periytys ja polymorfismi ovat molemmat käsitteitä olio-ohjelmoinnissa.
- Periytys on luokan kykyä periä ominaisuuksia ja menetelmiä toisesta luokasta. Samaan aikaan polymorfismi mahdollistaa eri luokkien objektien kohtelun ikään kuin ne kuuluisivat samaan luokkaan.
- Periytys on tapa luoda luokkien hierarkia, kun taas polymorfismi on tapa tehdä koodista joustavampi ja mukautuvampi.
Perinnöllisyys vs polymorfismi
Periytys mahdollistaa koodin uudelleenkäytön ja voi auttaa järjestämään koodia loogisiin hierarkioihin. Polymorfismi on eri luokkien objektien kykyä jakaa yhteisiä toimintoja periytymisen ja rajapintojen kautta. Se voidaan saavuttaa kahdella tavalla: käännös- ja suoritusaika.
Periytys on lähetys, jossa luodaan uusi luokka, joka johtaa tällaisen tunnistettavan ryhmän ominaisuudet. Se edistää koodin toistettavuuden käsitettä ja lyhentää koodin monimutkaisuutta koko oliolaskennan aikana.
Yksittäinen transmissio, monitasoinen perinnöllisyys, moniperintö, hybridiperinnöllinen ja patriarkaalinen perintö ovat perinnön yleisiä ilmentymiä.
Polymorfismi on kyky suorittaa työ useissa muodoissa tai menetelmissä. Sitä käytetään kuvaamaan toimintoja tai tekniikoita.
Polymorfismin avulla kokonaisuus voi valita toiminnon version, joka suoritetaan sekä käännöksen että ajon aikana. Polymorfismi luokitellaan kahteen tyyppiin: käännösajan vaihtelevuus sekä ajonaikainen polymorfismi.
Vertailu Taulukko
Vertailun parametrit | Perintö | polymorfismi |
---|---|---|
Perus | Fundamental Heritance on prosessi, jossa muodostetaan uusi luokka vanhan luokan spesifikaatioita käyttäen. | Polymorfismi on hyödyllinen siltana eri muotojen välillä. |
Täytäntöönpano | Perintö on jaettu eri luokkiin. | Toiminnassa/menetelmissä käytetään heterogeenisyyttä. |
Käyttää | Edistää modularisoinnin käsitettä OOP:ssa ja lyhentää koodia. | Antaa entiteetin valita, mikä toiminnon iteraatio aktivoidaan käännös- ja suoritusaikana. |
Lomakkeet | Yksittäinen, moninkertainen, monitasoinen perintö jne. ovat kaikki mahdollisia. | Geneettisiä muunnelmia voidaan joko koota tai ajon aikana. |
esimerkki | Koska "pöytä" on "lehtipuu", kategorialla "pöytä" voi olla alaluokan "lehtipuu" ominaisuus. | Luokan 'desk' toiminto 'set color' voidaan kutsua myös rakennuksen ja toiminnan nopeudella. |
Mikä on perintö?
Periytys on noussut OOP:n tärkeimmäksi skaalautuvuutta tukevaksi piirteeksi. Uudelleenkäytettävyyttä voitaisiin ehkä luonnehtia kyvyksi rakentaa erityinen luokka kierrättämällä vain objektitietokannan ominaisuuksia.
Perinnössä näyttää olevan rakenneyksikkö, jonka abstraktit luokat perivät. Aina kun luokka lainaa toista luokkaa, jokaisen perusluokan attribuuteista tulee jommankumman tietorakenteen jäseniä.
Säännöllinen saavutettavuuslauseke määrittää tässä tapauksessa menetelmän, jolla komponenttiin viitataan johdetun luokan tietorakenteessa. Ellei pääsyä erityistä strategiaa ole annettu, sen oletetaan olevan yksityinen valinnan mukaan.
Jos abstraktit menetelmät ovat tiukkoja, ohjauskeskus on C++:n sopimuksen mukaan julkinen. Alaluokka sisään Jaava lainaa toista luokkaa samalla kun käyttää termiä ulottuu.
Variantti ei voi vierailla yksityisiksi merkityissä perusluokan kiinteistöissä. Prototyyppi saattaa olla esim Jaava, noutaa superluokan luottamukselliset attribuutit, ja Java tarjoaa ratkaisun, jos jälkeläisen on hankittava tai alustettava kyseiset osat.
Alaluokka voi käyttää termiä "super" viittaamaan viereisen superluokan esiintymiin. Se voi saavuttaa vain lähimmän superluokan ainesosat.
Mikä on polymorfismi?
Polymorfismi määritellään "yhdeksi operaatioksi, useita muotoja". Se saavutetaan sekä käännös- että tapahtumalähtöisellä tasolla.
Ylikuormitusta käytetään käännösajan joustavuuden saavuttamiseen, kun taas ensisijainen käytetään suorittamaan ajonaikaista geneettistä vaihtelua.
Polymorfismin ansiosta artefakti voi valita "mikä versio operaatiosta suoritetaan milloin" sekä kääntää, mutta myös ajoaikaa.
Ylikuormitusinvarianssilla tarkoitetaan luokassa olevan mekanismin kutsumista useita kertoja eri tietotyypeillä ja argumenteilla, vaikka kyllästetyllä menetelmällä olisi pitänyt olla sama takaisinkutsumekanismi.
Lähes koko ajanjakson laajennetut algoritmit ovat luokkageneraattoreita. Ylivoimainen käsite koskee vain luokitusten operaatioita, jotka vastaavat sukulinjan käsitettä.
C++:ssa ohitettava tekniikka merkitään sanalla "virtuaalinen" relaatiomallissa ja toistetaan prototyypissä.
Ylikuormitus edellyttää koodin tai ehkä luokan menetelmän kirjoittamista useita kertoja eri parametreilla, mutta samoilla ilmentymämuuttujilla.
Se tarkoittaa, että toimintoon syötetyt parametrit voivat vaihdella, ja skriptiin ajon aikana syötetyt lasketut arvot määräävät, mikä ohjelmaversio on suoritettava. Keskimäärin ylikuormitettu toiminto on luokkafunktio Object.
Tärkeimmät erot periytymisen ja polymorfismin välillä
- Periytys antaa piilevän muuttujan hyödyntää perusluokkatyypin komponentteja ja menetelmiä. Luokkakaavio ei saa määrittää näitä jäseniä tai menetelmiä. Polymorfismi sallii kuitenkin objektin valita, mikä prosessin versio suoritetaan sekä rakennus- että suoritusaikana.
- Luokat tukevat perintöä. Toisaalta polymorfiaa käytetään tekniikoissa ja muuttujissa.
- Yksittäinen, moninkertainen, monitasoinen, hierarkkinen ja hybriditestamentti ovat monenlaisia perintötyyppejä. Polymorfismia sitä vastoin luonnehditaan ylikuormitukseksi ja ylikuormitukseksi.
- Periytys on luokan perustamista, joka perii ominaisuutensa vakiintuneelta objektilta. Toisaalta polymorfismi on toiminnallisuutta, joka voidaan toteuttaa eri tavoin.
- Useimmiten perinnön tapauksessa pyöräluokka voi olla peräisin kaksipyöräisiä ajoneuvoja edustavasta luokasta, joka voi olla autojen alajako. Polymorfismissa luokkapyörä voi sisältää menetelmän nimeltä set color, joka muuttaa pyörän väriä riippuen molempien toimittamiesi värien nimestä.
- https://dl.acm.org/doi/abs/10.1145/1921607.1921611
- https://link.springer.com/chapter/10.1007/978-3-322-91603-7_23
Viimeksi päivitetty: 11. kesäkuuta 2023
Sandeep Bhandari on suorittanut tietokonetekniikan kandidaatin tutkinnon Thaparin yliopistosta (2006). Hänellä on 20 vuoden kokemus teknologia-alalta. Hän on kiinnostunut erilaisista teknisistä aloista, mukaan lukien tietokantajärjestelmät, tietokoneverkot ja ohjelmointi. Voit lukea hänestä lisää hänen sivuiltaan bio-sivu.
Ero periytymisen ja polymorfismin välillä on hyvin artikuloitu, ja tämä artikkeli toimii arvokkaana viitteenä.
Artikkeli tarjoaa tiiviin ja informatiivisen selityksen oliopohjaisen koodauksen perusteista.
Artikkeli esittelee syvän ymmärryksen perinnöllisyydestä ja polymorfismista ja niiden roolista olio-ohjelmoinnissa.
Selitys polymorfismista ja siitä, kuinka se voidaan saavuttaa sekä käännösaika- että tapahtumalähtöisellä tasolla, on mielestäni erittäin oivallinen.
Vertailutaulukko on loistava lisäys, koska se hahmottelee selkeästi erot periytymisen ja polymorfismin välillä.
Esimerkit sekä perinnöllisyydestä että polymorfismista auttavat todella ymmärtämään näitä käsitteitä paremmin.