Perintö ja säilytys
Perintö ja säilytys ovat kaksi tärkeätä käsitettä, jotka löytyvät OOP: sta (olio-ohjelmoitu esimerkki: C ++). Yksinkertaisesti sanottuna sekä säilytysasiat että perinnöllisyys käsittelevät luokalle lisäominaisuuksien tai käyttäytymisen tarjoamista. Perintö on luokan kyky periä ominaisuuksia ja käyttäytymistä vanhemmalta luokalta laajentamalla sitä. Toisaalta, Containership on luokan kyky sisältää eri luokkien esineitä jäsendatoina.
Mikä on perintö?
Kuten edellä mainittiin, perintö on luokan kykyä periä ominaisuuksia ja käyttäytymistä vanhemmalta luokalta laajentamalla sitä. Perintö tarjoaa käytännössä koodin uudelleenkäytön sallimalla olemassa olevan luokan ominaisuuksien ja käyttäytymisen laajentamisen vasta määritellyllä luokalla. Jos luokka A ulottuu B: hen, niin luokkaa B kutsutaan vanhemmaluokkaksi (tai superluokkaksi) ja luokkaa A kutsutaan lapsiluokkaksi (tai johdettu luokka / alaluokka). Tässä esimerkissä skenaario A perii kaikki superluokan (B) kaikki julkiset ja suojatut määritteet ja menetelmät. Alaluokka voi valinnaisesti ohittaa (tarjota menetelmille uuden tai laajennetun toiminnallisuuden) vanhemmaluokalta perimän käytöksen. Perintö edustaa "on-a" -suhdetta OOP: ssa. Tämä tarkoittaa pääasiassa, että A on myös B. Toisin sanoen B voi olla luokka, jolla on yleinen kuvaus tietystä todellisen maailman kokonaisuudesta, mutta A määrittelee tietyn erikoistumisen. Todellisen maailman ohjelmointiongelmassa Henkilöluokka voitaisiin laajentaa Työntekijäluokkaksi. Tätä kutsutaan erikoistumiseksi. Mutta voit myös ensin luoda työntekijäluokan ja sitten yleistää sen myös henkilöluokkaan (ts. Yleistäminen). Tässä esimerkissä työntekijällä on kaikki henkilön ominaisuudet ja käyttäytyminen (ts. Työntekijä on myös henkilö) ja se voi sisältää joitain lisätoimintoja (eli henkilö ei ole työntekijä).
Mikä on konttialus?
Containership on luokan kyky sisältää eri luokkien esineitä jäsendatoina. Esimerkiksi luokka A voisi sisältää jäsenenä luokan B objektin. Tässä kaikki B: ssä määritellyt julkiset menetelmät (tai toiminnot) voidaan suorittaa luokassa A. Luokasta A tulee säiliö, kun taas luokasta B tulee suljettu luokka. Konttilaivaksi kutsutaan myös koostumusta. Tässä esimerkissä voidaan sanoa, että luokka A koostuu luokasta B. OOP: ssa konttilaiva edustaa “on-a-suhdetta”. On tärkeätä huomata, että vaikka säilöllä on pääsy suorittamaan kaikki sisällysluokan julkiset menetelmät, se ei voi muuttaa tai tarjota lisätoimintoja. Kun kyse on todellisen maailman ohjelmointiongelmasta, luokan TextBox luokan objekti voi sisältyä luokan lomakkeeseen, ja siten voidaan sanoa, että lomake sisältää tekstikenttään (tai vaihtoehtoisesti lomake koostuu tekstikentästä).
Ero periytymisen ja säilytystilan välillä
Vaikka perintö ja säilytys ovat kaksi OOP-konseptia, ne ovat melko erilaisia siinä, mitä niiden avulla ohjelmoija voi saavuttaa. Periminen on luokan kykyä periä ominaisuuksia ja käyttäytymistä vanhemmalta luokalta laajentamalla sitä, kun taas säilytystila on luokan kyky sisältää eri luokkien kohteita jäsendatana. Jos luokkaa laajennetaan, se perii kaikki julkiset ja suojatut ominaisuudet / käyttäytyminen ja alaluokka voi ohittaa nämä käytökset. Mutta jos luokka sisältyy toiseen, säilö ei saa kykyä muuttaa tai lisätä käyttäytymistä sisällön sisällä. Perintö edustaa "on-a" -suhdetta OOP: ssa, kun taas Containership edustaa "on-a" -suhdetta.