Verskil tussen erfenis en samestelling

Verskil tussen erfenis en samestelling
Verskil tussen erfenis en samestelling

Video: Verskil tussen erfenis en samestelling

Video: Verskil tussen erfenis en samestelling
Video: Het verschil tussen eigenliefde en narcisme 2024, November
Anonim

Erfenis vs Samestelling

Oorerwing en samestelling is twee belangrike konsepte wat in OOP (Object Oriented Programming) voorkom. In eenvoudige terme, beide Samestelling en Erfenis handel oor die verskaffing van bykomende eienskappe of gedrag aan 'n klas. Oorerwing is die vermoë vir 'n klas om eienskappe en gedrag van 'n ouerklas te erf deur dit uit te brei. Aan die ander kant is samestelling die vermoë van 'n klas om voorwerpe van verskillende klasse as liddata te bevat.

Wat is erfenis?

Soos hierbo genoem, is erfenis die vermoë vir 'n klas om eienskappe en gedrag van 'n ouerklas te erf deur dit uit te brei. Oorerwing verskaf in wese kode hergebruik deur die uitbreiding van eienskappe en gedrag van 'n bestaande klas deur 'n nuut gedefinieerde klas toe te laat. As klas A B uitbrei, dan word klas B die ouerklas (of superklas) genoem en klas A word die kinderklas (of afgeleide klas/subklas) genoem. In hierdie voorbeeldscenario sal klas A alle publieke en beskermde eienskappe en metodes van die superklas (B) erf. Die subklas kan opsioneel die gedrag wat van die ouerklas geërf is, ignoreer (nuwe of uitgebreide funksionaliteit aan metodes verskaf).

Erfenis verteenwoordig 'n "is-'n"-verhouding in OOP. Dit beteken in wese dat A ook 'n B is. Met ander woorde, B kan die klas wees met 'n algemene beskrywing van 'n sekere werklike wêreld entiteit, maar A spesifiseer 'n sekere spesialisasie. In 'n werklike programmeringsprobleem kan die Persoonklas uitgebrei word om die Werknemerklas te skep. Dit word spesialisasie genoem. Maar jy kan ook eers die Werknemerklas skep en dit dan ook veralgemeen na 'n Persoonklas (bv.e. veralgemening). In hierdie voorbeeld sal die Werknemer al die eienskappe en gedrag van die Persoon hê (d.w.s. Werknemer is ook 'n Persoon) en kan ook 'n paar bykomende funksionaliteit bevat (dus, Persoon is nie 'n Werknemer nie).

Wat is samestelling?

Komposisie is die vermoë van 'n klas om voorwerpe van verskillende klasse as liddata te bevat. Klas A kan byvoorbeeld 'n objek van klas B as 'n lid bevat. Hier kan al die publieke metodes (of funksies) wat in B gedefinieer word binne die klas A uitgevoer word. Klas A word die houer, terwyl klas B die vervatte klas word. Daar word ook na die samestelling verwys as Containership. In hierdie voorbeeld kan gesê word dat klas A saamgestel is uit klas B. In OOP verteenwoordig Samestelling 'n "het-'n"-verhouding. Dit is belangrik om daarop te let dat, alhoewel die houer toegang het om al die publieke metodes van die ingeslote klas uit te voer, dit nie in staat is om te verander of bykomende funksionaliteit te verskaf nie. Wanneer dit kom by 'n werklike wêreld programmeringsprobleem, kan 'n objek van klas TextBox in die klasvorm vervat wees, en dus kan gesê word dat 'n vorm 'n teksboks bevat (of alternatiewelik is 'n vorm saamgestel uit 'n teksboks).

Wat is die verskil tussen erfenis en samestelling?

Alhoewel oorerwing en samestelling twee OOP-konsepte is, verskil hulle heeltemal in wat dit die programmeerder toelaat om te bereik. Oorerwing is die vermoë vir 'n klas om eienskappe en gedrag van 'n ouerklas te erf deur dit uit te brei, terwyl Samestelling die vermoë van 'n klas is om voorwerpe van verskillende klasse as liddata te bevat. As 'n klas uitgebrei word, erf dit al die publieke en beskermde eiendomme/gedrag en daardie gedrag kan deur die subklas oorheers word. Maar as 'n klas in 'n ander vervat is, kry die houer nie die vermoë om gedrag by die inhoud te verander of by te voeg nie. Oorerwing verteenwoordig 'n "is-'n"-verhouding in OOP, terwyl Samestelling 'n "het-'n"-verhouding verteenwoordig.

Aanbeveel: