Skillnaden mellan arv och containerfartyg

Skillnaden mellan arv och containerfartyg
Skillnaden mellan arv och containerfartyg

Video: Skillnaden mellan arv och containerfartyg

Video: Skillnaden mellan arv och containerfartyg
Video: Dragon Age Inquisition [The Descent DLC - Trespasser DLC] Gameplay Walkthrough [Full Game] 2024, Juli
Anonim

Inheritance vs Containership

Arv och Containership är två viktiga begrepp som finns i OOP (objektorienterad programmeringsexempel: C++). Enkelt uttryckt handlar både Containership och Inheritance om att tillhandahålla ytterligare egenskaper eller beteende till en klass. Arv är förmågan för en klass att ärva egenskaper och beteende från en överordnad klass genom att utöka den. Å andra sidan är Containership förmågan hos en klass att innehålla objekt av olika klasser som medlemsdata.

Vad är arv?

Som nämnts ovan är Arv förmågan för en klass att ärva egenskaper och beteende från en överordnad klass genom att utöka den. Arv ger i huvudsak kodåteranvändning genom att tillåta utvidgning av egenskaper och beteende hos en befintlig klass med en nydefinierad klass. Om klass A förlänger B, kallas klass B förälderklassen (eller superklassen) och klass A kallas barnklassen (eller härledd klass/underklass). I det här exemplet kommer klass A att ärva alla offentliga och skyddade attribut och metoder för superklassen (B). Underklassen kan valfritt åsidosätta (tillhandahålla ny eller utökad funktionalitet till metoder) beteendet som ärvts från den överordnade klassen. Arv representerar ett "är-ett"-förhållande i OOP. Detta betyder i huvudsak att A också är ett B. Med andra ord kan B vara klassen med en allmän beskrivning av en viss verklig värld men A specificerar en viss specialisering. I ett verkligt programmeringsproblem kan klassen Person utökas för att skapa klassen Employee. Detta kallas för specialisering. Men du kan också först skapa klassen Employee och sedan generalisera den till en personklass också (dvs.e. generalisering). I det här exemplet kommer den anställde att ha alla egenskaper och beteende hos personen (dvs. anställd är också en person) och kan även innehålla ytterligare funktioner (så att personen inte är en anställd).

Vad är containership?

Containership är en klasss förmåga att innehålla objekt av olika klasser som medlemsdata. Till exempel kan klass A innehålla ett objekt av klass B som medlem. Här kan alla offentliga metoder (eller funktioner) som definieras i B exekveras inom klassen A. Klass A blir behållaren, medan klass B blir den inneslutna klassen. Containership kallas också Composition. I det här exemplet kan man säga att klass A är sammansatt av klass B. I OOP representerar Containership ett "har-ett"-förhållande. Det är viktigt att notera att även om behållaren har tillgång till att köra alla offentliga metoder för den inneslutna klassen, kan den inte ändra eller tillhandahålla ytterligare funktionalitet. När det kommer till ett programmeringsproblem i den verkliga världen kan ett objekt av klassen TextBox finnas i klassen Form, och därför kan man säga att en Form innehåller en TextBox (eller alternativt är en Form sammansatt av en TextBox).

Skillnaden mellan arv och containership

Även om Arv och Containership är två OOP-koncept är de ganska olika i vad de tillåter programmeraren att uppnå. Arv är förmågan för en klass att ärva egenskaper och beteende från en överordnad klass genom att utöka den, medan Containership är förmågan för en klass att innehålla objekt av olika klasser som medlemsdata. Om en klass utökas, ärver den alla offentliga och skyddade egenskaper/beteende och dessa beteenden kan åsidosättas av underklassen. Men om en klass finns i en annan får behållaren inte möjligheten att ändra eller lägga till beteende till innehållet. Arv representerar ett "är-ett"-förhållande i OOP, medan Containership representerar ett "har-ett"-förhållande.

Rekommenderad: