Atšķirība starp iedzimtību un sastāvu

Atšķirība starp iedzimtību un sastāvu
Atšķirība starp iedzimtību un sastāvu

Video: Atšķirība starp iedzimtību un sastāvu

Video: Atšķirība starp iedzimtību un sastāvu
Video: Sekcija Kriminālprocesa un kriminālistikas aktuālās problēmas 2024, Jūlijs
Anonim

Mantojums pret sastāvu

Mantojums un Kompozīcija ir divi svarīgi jēdzieni, kas atrodami OOP (Objektorientētā programmēšana). Vienkārši izsakoties, gan sastāvs, gan mantojums nodarbojas ar papildu īpašību vai darbības nodrošināšanu klasei. Mantojums ir klases spēja mantot īpašības un uzvedību no vecākklases, to paplašinot. No otras puses, kompozīcija ir klases spēja saturēt dažādu klašu objektus kā dalībnieku datus.

Kas ir mantošana?

Kā minēts iepriekš, mantošana ir klases iespēja mantot īpašības un uzvedību no vecākklases, to paplašinot. Mantojums būtībā nodrošina koda atkārtotu izmantošanu, ļaujot paplašināt esošās klases īpašības un uzvedību ar jaunu definētu klasi. Ja klase A paplašina B, tad klasi B sauc par vecākklasi (vai superklasi), bet klasi A sauc par atvasināto klasi (vai atvasinātu klasi/apakšklasi). Šajā piemērā A klase pārmantos visus publiskos un aizsargātos superklases (B) atribūtus un metodes. Apakšklase var pēc izvēles ignorēt (nodrošināt jaunu vai paplašinātu funkcionalitāti metodēm) uzvedību, kas mantota no vecākklases.

Mantojums apzīmē “ir-a” attiecību OOP. Tas būtībā nozīmē, ka A ir arī B. Citiem vārdiem sakot, B var būt klase ar vispārīgu noteiktas reālās pasaules entītijas aprakstu, bet A norāda noteiktu specializāciju. Reālās pasaules programmēšanas problēmā Personu klasi var paplašināt, lai izveidotu darbinieku klasi. To sauc par specializāciju. Bet jūs varat arī vispirms izveidot klasi Darbinieks un pēc tam vispārināt to arī Personas klasē (t.i.e. vispārinājums). Šajā piemērā Darbiniekam būs visas Personas īpašības un uzvedība (t.i., Darbinieks arī ir Persona), un tas var ietvert arī dažas papildu funkcijas (tātad, Persona nav darbinieks).

Kas ir kompozīcija?

Sastāvs ir klases spēja kā dalībnieku datus saturēt dažādu klašu objektus. Piemēram, A klases loceklis var ietvert B klases objektu. Šeit visas B definētās publiskās metodes (vai funkcijas) var izpildīt A klasē. A klase kļūst par konteineru, savukārt B klase kļūst par ietverto klasi. Sastāvs tiek saukts arī par konteineru. Šajā piemērā var teikt, ka A klase sastāv no B klases. OOP kompozīcija apzīmē “has-a” attiecību. Ir svarīgi atzīmēt, ka, lai gan konteineram ir piekļuve visu ietvertās klases publisko metožu izpildei, tas nevar mainīt vai nodrošināt papildu funkcionalitāti. Runājot par reālās pasaules programmēšanas problēmu, klases TextBox objekts var būt ietverts klasē Form, un tādējādi var teikt, ka veidlapā ir tekstlodziņš (vai alternatīvi, forma sastāv no TextBox).

Kāda ir atšķirība starp mantošanu un sastāvu?

Lai gan mantošana un sastāvs ir divi OOP jēdzieni, tie ir diezgan atšķirīgi, jo tie programmētājam ļauj sasniegt. Mantojums ir klases iespēja mantot īpašības un uzvedību no vecākklases, to paplašinot, savukārt kompozīcija ir klases spēja saturēt dažādu klašu objektus kā dalībnieku datus. Ja klase tiek paplašināta, tā pārmanto visas publiskās un aizsargātās īpašības/uzvedību, un šīs darbības var ignorēt apakšklasē. Bet, ja klase ir ietverta citā, konteiners nesaņem iespēju mainīt vai pievienot ietvertā uzvedību. Mantojums apzīmē “ir-a” attiecību OOP, savukārt Sastāvs apzīmē “ir-a” attiecību.

Ieteicams: