Наслеђивање вс контејнерство
Наслеђивање и контејнеризација су два важна концепта која се налазе у ООП-у (објектно-оријентисани пример програмирања: Ц ++). Једноставно речено, и Цонтаинерсхип и наследство баве се додатним својствима или понашањем класе. Насљеђивање је способност да класа насљеђује својства и понашање од родитељске класе проширујући је. Са друге стране, Цонтаинерсхип је способност класе да као подаци о члану садржи објекте различитих класа.
Шта је наслеђивање?
Као што је горе споменуто, Насљеђивање је способност да класа насљеђује својства и понашање од родитељске класе проширујући је. Наслеђивање у основи омогућава поновну употребу кода омогућавајући проширење својстава и понашања постојеће класе од стране нове дефинисане класе. Ако се класа А прошири на Б, тада се класа Б назива родитељска класа (или супер класа), а класа А се зове подређена класа (или изведена класа / поткласа). У овом примјеру сценарија, класа А ће наслиједити све јавне и заштићене атрибуте и методе супер класе (Б). Подкласа може опционо надјачати (пружити нову или проширену функционалност методама) понашање наслеђено од родитељске класе. Наслеђивање представља однос „јесте-а“ у ООП-у. То у суштини значи да је А такође Б. Другим речима, Б може бити класа са општим описом одређеног стварног светског ентитета, али А одређује одређену специјализацију. У стварном програмском проблему, класа Персон би се могла проширити тако да створи класу Емплоиее. То се назива специјализацијом. Али прво бисте могли да створите и класу Емплоиее, а затим је генералишете и на Персон цласс (тј. Генерализацију). У овом примјеру, запослени ће имати сва својства и понашање особе (тј. Запослени је такође и лице) и може садржати и неку додатну функционалност (тако, особа није ни запослени).
Шта је Цонтаинерсхип?
Садржај је способност класе да садржи податке различитих класа као чланске податке. На пример, класа А може да садржи објекат класе Б као члана. Овде се све јавне методе (или функције) дефинисане у Б могу извршити унутар класе А. Класа А постаје спремник, док класа Б постаје класа која се налази у њима. Контејнери се називају и Састав. У овом примеру се може рећи да се класа А састоји од класе Б. У ООП-у контејнери представљају однос „има-а“. Важно је напоменути да, иако спремник има приступ извршавању свих јавних метода садржане класе, он није у могућности да измени или пружи додатну функционалност. Када је у питању проблем у стварном свету програмирања, предмет класе ТектБок може бити садржан у облику класе, и на тај начин се може рећи да образац садржи ТектБок (или алтернативно, образац је састављен од ТектБока).
Разлика између наслеђивања и контејнера
Иако су наслеђивање и контејнери два концепта ООП, они се прилично разликују у ономе што дозвољавају програмеру да постигне. Насљеђивање је способност да класа насљеђује својства и понашање од родитељске класе проширујући је, док је Цонтаинерсхип способност класе да садржи податке различитих класа као чланске податке. Ако се класа прошири, она наслеђује сва јавна и заштићена својства / понашање и та понашања могу бити надјачана поткласама. Али ако је класа садржана у другој, спремник не добија способност да мења или додаје понашање садржаном. Наслеђивање представља однос „јесте-а“ у ООП-у, док контејнерско представља „однос-има“ однос.