Skillnaden Mellan Arv Och Komposition

Skillnaden Mellan Arv Och Komposition
Skillnaden Mellan Arv Och Komposition

Video: Skillnaden Mellan Arv Och Komposition

Video: Skillnaden Mellan Arv Och Komposition
Video: Vad är arv och vad är miljö? - Hjärnkanalen 2024, April
Anonim

Arv vs sammansättning

Arv och komposition är två viktiga begrepp som finns i OOP (Object Oriented Programming). Enkelt uttryckt handlar både komposition och arv 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 komposition en klasss förmåga 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 återanvändning av kod genom att tillåta utökande egenskaper och beteende hos en befintlig klass med en nyligen definierad klass. Om klass A sträcker sig B kallas klass B förälderklassen (eller superklassen) och klass A kallas underklassen (eller härledd klass / underklass). I detta exempelscenario kommer klass A att ärva alla offentliga och skyddade attribut och metoder för superklassen (B). Underklassen kan valfritt åsidosätta (ge ny eller utökad funktionalitet till metoder) beteendet som ärvs från den överordnade klassen.

Arv representerar ett”is-a” -förhållande i OOP. Detta innebär i huvudsak att A också är en B. Med andra ord kan B vara klassen med en allmän beskrivning av en viss verklig världsenhet men A anger en viss specialisering. I ett verkligt världsprogrammeringsproblem kan personklassen utökas till att skapa anställdklassen. Detta kallas specialisering. Men du kan också först skapa klassen för anställda och sedan generalisera den till en personklass (dvs. generalisering). I det här exemplet kommer den anställde att ha alla personens egenskaper och beteende (dvs. att anställd också är en person) och kan innehålla ytterligare funktioner (så att personen inte är anställd) också.

Vad är komposition?

Komposition är förmågan hos en klass 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 klass A. Klass A blir behållaren, medan klass B blir den inneslutna klassen. Sammansättning kallas också Containership. I det här exemplet kan man säga att klass A består av klass B. I OOP representerar komposition en”has-a” relation. Det är viktigt att notera att även om behållaren har tillgång till att utföra alla offentliga metoder i den inneslutna klassen, kan den inte ändra eller tillhandahålla ytterligare funktioner. När det gäller ett verkligt programmeringsproblem kan ett objekt av klass TextBox finnas i klassformuläret,och således kan sägas att ett formulär innehåller en textbox (eller alternativt består en blankett av en textbox).

Vad är skillnaden mellan arv och komposition?

Även om Inheritance and Composition är två OOP-koncept är de helt 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 komposition är förmågan hos en klass att innehålla objekt av olika klasser som medlemsdata. Om en klass utökas ärver den alla offentliga och skyddade egenskaper / beteenden 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 "is-a" -förhållande i OOP, medan komposition representerar ett "has-a" -förhållande.

Rekommenderas: