Forskellen mellem arv og containerskib

Forskellen mellem arv og containerskib
Forskellen mellem arv og containerskib

Video: Forskellen mellem arv og containerskib

Video: Forskellen mellem arv og containerskib
Video: Naturkatastrofer 2024, Juli
Anonim

Inheritance vs Containership

Inheritance og Containership er to vigtige begreber, der findes i OOP (objektorienteret programmeringseksempel: C++). Enkelt sagt handler både Containership og Inheritance om at levere yderligere egenskaber eller adfærd til en klasse. Arv er en klasses evne til at arve egenskaber og adfærd fra en overordnet klasse ved at udvide den. På den anden side er Containership en klasses evne til at indeholde objekter af forskellige klasser som medlemsdata.

Hvad er arv?

Som nævnt ovenfor er arv en klasses evne til at arve egenskaber og adfærd fra en overordnet klasse ved at udvide den. Nedarvning giver i det væsentlige kodegenbrug ved at tillade udvidelse af egenskaber og adfærd for en eksisterende klasse med en nydefineret klasse. Hvis klasse A udvider B, så kaldes klasse B forældreklassen (eller superklassen) og klasse A kaldes underklassen (eller afledt klasse/underklasse). I dette eksempelscenarie vil klasse A arve alle offentlige og beskyttede attributter og metoder i superklassen (B). Underklassen kan valgfrit tilsidesætte (give ny eller udvidet funktionalitet til metoder) den adfærd, der er nedarvet fra den overordnede klasse. Arv repræsenterer et "er-a" forhold i OOP. Dette betyder i det væsentlige, at A også er et B. Med andre ord kan B være klassen med en generel beskrivelse af en bestemt virkelighedsentitet, men A specificerer en bestemt specialisering. I et programmeringsproblem i den virkelige verden kunne Person-klassen udvides til at skabe Employee-klassen. Dette kaldes specialisering. Men du kan også først oprette Employee-klassen og derefter generalisere den til en Person-klasse (dvs.e. generalisering). I dette eksempel vil medarbejderen have alle personens egenskaber og adfærd (dvs. at medarbejder også er en person) og kan også indeholde nogle ekstra funktioner (så person er ikke en medarbejder).

Hvad er containerskib?

Containership er en klasses evne til at indeholde objekter af forskellige klasser som medlemsdata. For eksempel kunne klasse A indeholde et objekt af klasse B som et medlem. Her kan alle de offentlige metoder (eller funktioner) defineret i B udføres inden for klassen A. Klasse A bliver containeren, mens klasse B bliver den indeholdte klasse. Containerskib omtales også som sammensætning. I dette eksempel kan det siges, at klasse A er sammensat af klasse B. I OOP repræsenterer Containership et "har-et" forhold. Det er vigtigt at bemærke, at selvom containeren har adgang til at udføre alle de offentlige metoder i den indeholdte klasse, er den ikke i stand til at ændre eller give yderligere funktionalitet. Når det kommer til et programmeringsproblem i den virkelige verden, kan et objekt af klassen TextBox være indeholdt i klassen Form, og det kan således siges, at en Form indeholder en TextBox (eller alternativt er en Form sammensat af en TextBox).

Forskel mellem arv og containerskib

Selvom Arv og Containership er to OOP-koncepter, er de ret forskellige i, hvad de tillader programmøren at opnå. Arv er en klasses evne til at arve egenskaber og adfærd fra en overordnet klasse ved at udvide den, mens Containership er en klasses evne til at indeholde objekter af forskellige klasser som medlemsdata. Hvis en klasse udvides, arver den alle de offentlige og beskyttede egenskaber/adfærd, og denne adfærd kan blive tilsidesat af underklassen. Men hvis en klasse er indeholdt i en anden, får containeren ikke mulighed for at ændre eller tilføje adfærd til den indeholdte. Arv repræsenterer et "er-en"-forhold i OOP, mens Containership repræsenterer et "har-et"-forhold.

Anbefalede: