Galvenā atšķirība - vairāku un daudzlīmeņu mantojums
Objektorientētā programmēšana (OOP) ir paradigma, lai izstrādātu programmu, izmantojot klases un metodes. Reālās pasaules scenārijus var kartēt ar objektiem. Tāpēc ir viegli izveidot programmatūras risinājumus. Klase ir priekšmets objekta uzbūvēšanai. Tas satur īpašības un metodes. Piemēram, pirms studenta objekta izveides ir jābūt klases skolēnam ar īpašībām un metodēm. Studentam var būt tādas īpašības kā studenta ID, vārds un metodes, piemēram, lasīt, rakstīt, mācīties. Metodes apraksta uzvedību, savukārt īpašības ir atribūti. Pēc klases izveidošanas, izmantojot tos, iespējams izveidot objektus. Objektu izveide ir pazīstama arī kā objektu instantiācija. Objekts neeksistē atsevišķi. Viņi sazinās ar citiem objektiem, un dati tiek nodoti objektos. Viens OOP pīlārs ir mantošana. Mantojuma mērķis ir palielināt koda atkārtotu izmantošanu. Tas izveido jaunu jau esošās klases rekvizītu un metožu klasi. Esošā klase ir pazīstama kā bāzes klase, un jauno klasi sauc par atvasināto klasi. Vairāku līmeņu mantošana un daudzlīmeņu mantošana ir mantojuma veidi. Šajā rakstā ir apskatīta atšķirība starp tiem. Galvenā atšķirība starp daudzlīmeņu un daudzlīmeņu mantojumu ir tāda, ka vairāku līmeņu mantošana ir tad, kad klase manto no daudzām bāzes klasēm, savukārt daudzlīmeņu mantošana ir tad, kad klase manto no atvasinātas klases, padarot šo atvasināto klasi par bāzes klasi jaunai klasei.
Kas ir daudzkārtēja mantošana?
Daudzkārtēja mantošana ir tad, kad klase manto vairāk nekā vienu bāzes klasi.
Attēls 01: Vairāki mantojumi
A B un C ir klases. A un B ir bāzes klases, un C ir atvasinātā klase. Klasei C ir jāpārvalda gan A, gan B bāzes klašu atkarība. Vairāki mantojumi programmatūras projektos netiek plaši izmantoti. Tas padara sistēmu sarežģītāku, jo viena klase manto daudzas klases.
Piemēram, pieņemsim, ka A un B klasei ir metode ar tādu pašu nosaukumu, kas ir summa(), un klase C atvasina abas klases. Pēc C tipa objekta izveidošanas un summas () metodes izsaukšanas tas var izraisīt kļūdu, jo abām klasēm ir viena un tā pati metode. Kompilators nezina, kuru funkciju izsaukt. Tāpēc vairākkārtēja mantošana palielina sistēmas sarežģītību. Vairāku mantojumu atbalsta C++ valodā, bet tādas valodas kā Java, C neatbalsta vairāku mantojumu. Tā vietā šajās valodās tiek izmantots interfeiss, kas ir līdzīgs klasei, taču to nevar izveidot.
Kas ir daudzlīmeņu mantošana?
Daudzlīmeņu mantošana ir tad, kad klase manto no atvasinātas klases, padarot šo atvasināto klasi par bāzes klasi jaunai klasei.
Attēls 02: Daudzlīmeņu mantošana
Daudzlīmeņu mantojumam ir trīs līmeņi. Starpklase, ko B manto no A klases un C klase manto no B klases. A ir B bāzes klase un B ir C bāzes klase.
Programma, kas ievieš daudzlīmeņu pārmantošanu, ir šāda. Programma ir uzrakstīta, izmantojot Java.
Attēls 03: Programma, kas ievieš daudzlīmeņu pārmantošanu
Saskaņā ar iepriekš minēto programmu A klase ir B klases pamatklase. B klase ir C klases pamatklase. B klasei ir pieejamas visas A klases īpašības un metodes. Visas klases īpašības un metodes B ir pieejama klasei C. Tāpēc C klase var piekļūt gan A, gan B īpašībām un metodēm. Veidojot C tipa objektu, ir iespējams izsaukt visas trīs metodes A (), B () un C (). Izvade dos A, B, C.
Kāda ir vairāku un daudzlīmeņu mantojuma līdzība?
Abi ir mantojuma veidi
Kāda ir atšķirība starp vairāku un daudzlīmeņu mantojumu?
Vairāku mantojumu pret daudzlīmeņu mantojumu |
|
Multiple Heritance ir mantojuma veids, kurā klase manto no vairāk nekā vienas bāzes klases. | Daudzlīmeņu mantošana ir mantojuma veids, kas manto no atvasinātas klases, padarot šo atvasināto klasi par bāzes klasi jaunai klasei. |
Lietošana | |
Multiple Heritance netiek plaši izmantota, jo tā padara sistēmu sarežģītāku. | Plaši tiek izmantota daudzlīmeņu mantošana. |
Klases līmeņi | |
Vairākām mantošanām ir divi klašu līmeņi, proti, bāzes klase un atvasinātā klase. | Daudzlīmeņu mantojumam ir trīs klašu līmeņi, proti, bāzes klase, starpklase un atvasinātā klase. |
Kopsavilkums - vairāki pret daudzlīmeņu mantojumu
Mantojums ir galvenais objektorientētās programmēšanas balsts. Ir dažādi mantojuma veidi; tie ir viena līmeņa mantošana, daudzlīmeņu mantošana, vairāku līmeņu mantošana, hierarhiskā mantošana un hibrīda mantošana. Viena līmeņa mantojumam ir viena bāzes klase un viena atvasināta klase. Hierarhiskajam mantojumam ir viena bāzes klase un daudzas atvasinātas klases. Hibrīda mantošana ir daudzlīmeņu un vairāku mantojuma kombinācija. Šajā rakstā ir aprakstīta atšķirība starp vairāku līmeņu mantojumu un daudzlīmeņu mantojumu. Atšķirība starp daudzlīmeņu un daudzlīmeņu mantojumiem ir tāda, ka vairāku līmeņu mantošana ir tad, kad klase manto no daudzām bāzes klasēm, savukārt daudzlīmeņu mantošana ir tad, kad klase manto no atvasinātas klases, padarot šo atvasināto klasi par bāzes klasi jaunai klasei. Daudzlīmeņu mantošana tiek plaši izmantota nekā vairāku līmeņu mantošana.
Lejupielādēt PDF vairāku līmeņu pārmantošanu
Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistē saskaņā ar atsauces piezīmi. Lūdzu, lejupielādējiet PDF versiju šeit Atšķirība starp vairāku un daudzlīmeņu mantojumu