Разлика између насљеђивања и састава

Наслеђивање вс састав

Насљеђивање и састав два су важна концепта која се налазе у ООП-у (објектно оријентисано програмирање). Једноставно речено, и Састав и Наслеђивање баве се пружањем додатних својстава или понашања класи. Насљеђивање је способност да класа насљеђује својства и понашање од родитељске класе проширујући је. Са друге стране, Састав је способност класе да као предмети чланова садржи предмете различитих класа.

Шта је наслеђивање?

Као што је горе споменуто, Насљеђивање је способност да класа насљеђује својства и понашање од родитељске класе проширујући је. Наслеђивање у основи омогућава поновну употребу кода омогућавајући проширење својстава и понашања постојеће класе од стране нове дефинисане класе. Ако се класа А прошири на Б, тада се класа Б назива родитељска класа (или супер класа), а класа А се зове подређена класа (или изведена класа / поткласа). У овом примјеру сценарија, класа А ће наслиједити све јавне и заштићене атрибуте и методе супер класе (Б). Подкласа може опционо надјачати (пружити нову или проширену функционалност методама) понашање наслеђено од родитељске класе.

Наслеђивање представља однос „јесте-а“ у ООП-у. То у суштини значи да је А такође Б. Другим речима, Б може бити класа са општим описом одређеног стварног светског ентитета, али А одређује одређену специјализацију. У стварном програмском проблему, класа Персон би се могла проширити тако да створи класу Емплоиее. То се назива специјализацијом. Али прво бисте могли да створите и класу Емплоиее, а затим је генералишете и на Персон цласс (тј. Генерализацију). У овом примјеру, запослени ће имати сва својства и понашање особе (тј. Запослени је такође и лице) и може садржати и неку додатну функционалност (тако, особа није ни запослени).

Шта је састав?

Састав је способност класе да садржи податке различитих класа као чланске податке. На пример, класа А може да садржи објекат класе Б као члана. Овде се све јавне методе (или функције) дефинисане у Б могу извршити унутар класе А. Класа А постаје спремник, док класа Б постаје класа која се налази у њима. Састав се такође назива и Цонтаинерсхип. У овом примеру се може рећи да се класа А састоји од класе Б. У ООП-у, Састав представља однос „има-а“. Важно је напоменути да, иако спремник има приступ извршавању свих јавних метода садржане класе, он није у могућности да измени или пружи додатну функционалност. Када је у питању проблем у стварном свету програмирања, предмет класе ТектБок може бити садржан у облику класе, и на тај начин се може рећи да образац садржи ТектБок (или алтернативно, образац је састављен од ТектБока).

Која је разлика између наслеђивања и састава?

Иако су наслеђивање и састав два ООП концепта, они се прилично разликују у ономе што омогућавају програмеру да постигне. Насљеђивање је способност да класа насљеђује својства и понашање од родитељске класе проширујући је, док је Састав способност класе да садржи податке различитих класа као чланске податке. Ако се класа прошири, она наслеђује сва јавна и заштићена својства / понашање и та понашања могу бити надјачана поткласама. Али ако је класа садржана у другој, спремник не добија способност да мења или додаје понашање садржаном. Наслеђивање представља однос „јесте-а“ у ООП-у, док Састав представља однос „има-а“.