Põhierinevus – mitu vs mitmetasandiline pärand
Object-Oriented Programming (OOP) on klasside ja meetodite abil programmi kavandamise paradigma. Reaalse maailma stsenaariume saab objektidele kaardistada. Seetõttu on tarkvaralahendusi lihtne koostada. Klass on objekti ehitamise plaan. See sisaldab omadusi ja meetodeid. Näiteks enne õpilasobjekti loomist peaks olema klassi õpilane omaduste ja meetoditega. Õpilasel võivad olla sellised omadused nagu õpilase ID, nimi ja meetodid, nagu lugemine, kirjutamine, uurimine. Meetodid kirjeldavad käitumist, omadused aga atribuudid. Peale klassi loomist on võimalik neid kasutades objekte luua. Objekti loomist tuntakse ka kui objektide esinemist. Objekti ei eksisteeri isoleeritult. Nad suhtlevad teiste objektidega ja andmeid edastatakse objektide sees. Üks OOP-i sammas on pärimine. Pärandi eesmärk on suurendada koodi korduvkasutatavust. See loob juba olemasoleva klassi atribuutide ja meetodite uue klassi. Olemasolevat klassi nimetatakse baasklassiks ja uut klassi nimetatakse tuletatud klassiks. Mitu pärand ja mitmetasandiline pärimine on pärimistüübid. Selles artiklis käsitletakse nende vahelist erinevust. Peamine erinevus mitme- ja mitmetasandilise pärimise vahel on see, et mitmetasandiline pärimine on siis, kui klass pärib paljudest põhiklassidest, samas kui mitmetasandiline pärand on siis, kui klass pärib tuletatud klassist, muutes tuletatud klassi uue klassi baasklassiks.
Mis on mitmikpärimine?
Mitme pärand on siis, kui klass pärib rohkem kui ühe põhiklassi.
Joonis 01: Mitmikpärimine
A B ja C on klassid. A ja B on põhiklassid ja C on tuletatud klass. Klass C peab haldama nii baasklasside A kui ka B sõltuvust. Mitut pärandit tarkvaraprojektides laialdaselt ei kasutata. See muudab süsteemi keerulisemaks, kuna üks klass pärib palju klasse.
Oletame näiteks, et klassil A ja B on mõlemal sama nimega meetod, mis on summa() ja klass C tuletab mõlemad klassid. Pärast C-tüüpi objekti loomist ja summa () meetodi kutsumist võib see põhjustada tõrke, kuna mõlemal klassil on sama meetod. Kompilaator ei tea, millist funktsiooni kutsuda. Seetõttu suurendab mitme pärand süsteemi keerukust. Mitut pärimist toetatakse C++ keeles, kuid sellised keeled nagu Java, C ei toeta mitmikpärimist. Selle asemel kasutavad need keeled liidest, mis sarnaneb klassiga, kuid mida ei saa luua.
Mis on mitmetasandiline pärimine?
Mitmetasandiline pärimine on see, kui klass pärib tuletatud klassist, muutes selle tuletatud klassi uue klassi baasklassiks.
Joonis 02: Mitmetasandiline pärimine
Mitmetasandilisel pärandil on kolm taset. Vaheklass, mille B pärib klassist A ja klass C klassist B. A on B põhiklass ja B on C baasklass.
Programm, mis rakendab mitmetasandilist pärandit, on järgmine. Programm on kirjutatud Java abil.
Joonis 03: Programm, mis rakendab mitmetasandilist pärandit
Vastav alt ül altoodud programmile on klass A klassi B põhiklass. Klass B on klassi C baasklass. Klass B on juurdepääsetav kõigile klassi A omadustele ja meetoditele. Kõik klassi omadused ja meetodid B-le pääseb ligi klass C. Seetõttu pääseb klass C juurde nii A kui ka B omadustele ja meetoditele. C-tüüpi objekti loomisel on võimalik kutsuda kõiki kolme meetodit A (), B () ja C (). Väljund annab A, B, C.
Mis on mitme- ja mitmetasandilise pärimise sarnasus?
Mõlemad on päranditüübid
Mis vahe on mitme- ja mitmetasandilisel pärandil?
Mitmekordne pärimine vs mitmetasandiline pärimine |
|
Multiple Heritance on pärimise tüüp, mille puhul klass pärib rohkem kui ühest põhiklassist. | Multilevel Heritance on pärimise tüüp, mis pärib tuletatud klassist, muutes selle tuletatud klassi uue klassi baasklassiks. |
Kasutus | |
Mitme pärandit ei kasutata laialdaselt, kuna see muudab süsteemi keerukamaks. | Mitmetasandilist pärandit kasutatakse laialdaselt. |
Klassitasemed | |
Mitmel pärimisel on kaks klassitaset, nimelt põhiklass ja tuletatud klass. | Mitmetasandilisel pärimisel on kolm klassitaset, nimelt põhiklass, vaheklass ja tuletatud klass. |
Kokkuvõte – mitu vs mitmetasandiline pärand
Pärimine on objektorienteeritud programmeerimise põhisammas. On olemas erinevat tüüpi pärandit; need on ühetasandiline pärimine, mitmetasandiline pärimine, mitmetasandiline pärimine, hierarhiline pärand ja hübriidpärand. Ühetasandilisel pärandil on üks põhiklass ja üks tuletatud klass. Hierarhilisel pärandil on üks baasklass ja palju tuletatud klasse. Hübriidpärand on mitmetasandilise ja mitme pärandi kombinatsioon. Selles artiklis kirjeldati erinevust mitme pärandi ja mitmetasandilise pärimise vahel. Mitme- ja mitmetasandilise pärandi erinevus seisneb selles, et mitmetasandiline pärimine on siis, kui klass pärib paljudest põhiklassidest, samas kui mitmetasandiline pärand on siis, kui klass pärib tuletatud klassist, muutes selle tuletatud klassi uue klassi baasklassiks. Mitmetasandilist pärandit kasutatakse laialdaselt kui mitmetasandilist pärandit.
Laadige PDF alla mitu vs mitmetasandiline pärand
Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Palun laadige PDF-versioon alla siit. Erinevus mitme- ja mitmetasandilise pärimise vahel