Forskjellen mellom arv og containerskip

Forskjellen mellom arv og containerskip
Forskjellen mellom arv og containerskip

Video: Forskjellen mellom arv og containerskip

Video: Forskjellen mellom arv og containerskip
Video: Naturfare - flom (NIFS-programmet) 2024, November
Anonim

Inheritance vs Containership

Inheritance og Containership er to viktige konsepter som finnes i OOP (Object Oriented Programming Eksempel: C++). Enkelt sagt handler både Containership og Inheritance om å gi ekstra egenskaper eller atferd til en klasse. Arv er muligheten for en klasse til å arve egenskaper og atferd fra en overordnet klasse ved å utvide den. På den annen side er Containership evnen til en klasse til å inneholde objekter av forskjellige klasser som medlemsdata.

Hva er arv?

Som nevnt ovenfor, er arv muligheten for en klasse til å arve egenskaper og atferd fra en overordnet klasse ved å utvide den. Arv gir i hovedsak kodegjenbruk ved å tillate utvidelse av egenskaper og oppførsel til en eksisterende klasse med en nylig definert klasse. Hvis klasse A utvider B, kalles klasse B foreldreklassen (eller superklassen) og klasse A kalles barneklassen (eller avledet klasse/underklasse). I dette eksempelscenariet vil klasse A arve alle offentlige og beskyttede attributter og metoder for superklassen (B). Underklassen kan valgfritt overstyre (gi ny eller utvidet funksjonalitet til metoder) atferden som er arvet fra den overordnede klassen. Arv representerer et "er-a"-forhold i OOP. Dette betyr i hovedsak at A også er en B. Med andre ord kan B være klassen med en generell beskrivelse av en viss virkelighetsenhet, men A spesifiserer en viss spesialisering. I et programmeringsproblem i den virkelige verden kan Person-klassen utvides til å opprette Employee-klassen. Dette kalles spesialisering. Men du kan også først opprette Employee-klassen og deretter generalisere den til en Person-klasse også (dvs.e. generalisering). I dette eksemplet vil den ansatte ha alle egenskapene og oppførselen til personen (dvs. at den ansatte også er en person) og kan også inneholde noen tilleggsfunksjoner (så personen er ikke en ansatt).

Hva er containerskip?

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

Forskjellen mellom arv og containerskip

Selv om arv og containerskip er to OOP-konsepter, er de ganske forskjellige i hva de lar programmereren oppnå. Arv er muligheten for en klasse til å arve egenskaper og atferd fra en overordnet klasse ved å utvide den, mens Containership 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/atferden, og denne atferden kan bli overstyrt av underklassen. Men hvis en klasse er inneholdt i en annen, får ikke beholderen muligheten til å endre eller legge til atferd til den inneholdte. Arv representerer et «er-a»-forhold i OOP, mens Containership representerer et «har-et»-forhold.

Anbefalt: