Forskjellen Mellom Arv Og Sammensetning

Forskjellen Mellom Arv Og Sammensetning
Forskjellen Mellom Arv Og Sammensetning

Video: Forskjellen Mellom Arv Og Sammensetning

Video: Forskjellen Mellom Arv Og Sammensetning
Video: Tekstbehandling: Inndelinger - forskjellen mellom inndelinger og sideskift 2024, November
Anonim

Arv vs sammensetning

Arv og komposisjon er to viktige begreper som finnes i OOP (Object Oriented Programming). Enkelt sagt handler både komposisjon og arv om å gi flere egenskaper eller oppførsel til en klasse. Arv er evnen for en klasse til å arve egenskaper og oppførsel fra en overordnet klasse ved å utvide den. På den annen side er komposisjon evnen til en klasse å inneholde objekter av forskjellige klasser som medlemsdata.

Hva er arv?

Som nevnt ovenfor er arv muligheten for en klasse å arve egenskaper og oppførsel fra en overordnet klasse ved å utvide den. Arv gir i hovedsak gjenbruk av kode ved å tillate utvidelse av egenskaper og oppførsel til en eksisterende klasse med en nylig definert klasse. Hvis klasse A strekker seg B, kalles klasse B foreldreklassen (eller superklassen) og klasse A kalles barneklassen (eller avledet klasse / underklasse). I dette eksemplet vil klasse A arve alle offentlige og beskyttede attributter og metoder i superklassen (B). Underklassen kan eventuelt overstyre (gi ny eller utvidet funksjonalitet til metoder) oppførselen som er arvet fra foreldreklassen.

Arv representerer et "is-a" forhold i OOP. Dette betyr egentlig at A også er en B. Med andre ord kan B være klassen med en generell beskrivelse av en bestemt virkelig verdensenhet, men A spesifiserer en viss spesialisering. I et ekteverdensprogrammeringsproblem kan personklassen utvides til å opprette arbeidstakerklassen. Dette kalles spesialisering. Men du kan også først opprette medarbeiderklassen og deretter generalisere den også til en personklasse (dvs. generalisering). I dette eksemplet vil medarbeideren ha alle egenskapene og oppførselen til personen (dvs. ansatt er også en person) og kan inneholde noe tilleggsfunksjonalitet (så person er ikke en ansatt) også.

Hva er sammensetning?

Komposisjon er evnen til en klasse å inneholde objekter fra forskjellige klasser som medlemsdata. For eksempel kan klasse A inneholde et objekt i klasse B som medlem. Her kan alle de offentlige metodene (eller funksjonene) som er definert i B utføres i klasse A. Klasse A blir beholderen, mens klasse B blir den inneholdte klassen. Komposisjon blir også referert til som Containership. I dette eksemplet kan det sies at klasse A er sammensatt av klasse B. I OOP representerer komposisjon et "has-a" -forhold. Det er viktig å merke seg at selv om containeren har tilgang til å utføre alle de offentlige metodene i den inneholdte klassen, er den ikke i stand til å endre eller gi ekstra funksjonalitet. Når det gjelder et reelt programmeringsproblem, kan et objekt i klassen TextBox være inneholdt i klassen Form,og dermed kan sies at et skjema inneholder en tekstboks (eller alternativt, et skjema er sammensatt av en tekstboks).

Hva er forskjellen mellom arv og sammensetning?

Selv om arv og komposisjon er to OOP-konsepter, er de ganske forskjellige i det de lar programmereren oppnå. Arv er evnen for en klasse til å arve egenskaper og oppførsel fra en overordnet klasse ved å utvide den, mens Komposisjon er evnen til en klasse til å inneholde objekter av forskjellige klasser som medlemsdata. Hvis en klasse utvides, arver den alle de offentlige og beskyttede egenskapene / oppførselen, og denne oppførselen kan bli overstyrt av underklassen. Men hvis en klasse er inneholdt i en annen, får ikke beholderen muligheten til å endre eller legge til oppførsel til det inneholdte. Arv representerer et "is-a" forhold i OOP, mens komposisjon representerer et "has-a" forhold.

Anbefalt: