વારસો અને કન્ટેનરશિપ વચ્ચેના તફાવત

Anonim

વારસા વિ કન્ટેઈનરશીપ

વારસા અને કન્ટેનરશિપ ઓએપી (ઓબ્જેક્ટ ઓરીએન્ટેડ પ્રોગ્રામિંગ ઉદાહરણ: C ++) માં મળેલી બે મહત્વપૂર્ણ ખ્યાલો છે. સરળ શબ્દોમાં, કન્ટેનરશિપ અને વારસા બંને વર્ગને વધારાના ગુણધર્મો અથવા વર્તન પૂરા પાડવા સાથે વ્યવહાર કરે છે. ભથ્થું એ વર્ગને વિસ્તારવા માટેની ક્ષમતા છે કે જેને માતાપિતા વર્ગથી સંપત્તિ અને વર્તણૂક પ્રાપ્ત થાય છે. પ્રશ્નની બીજી બાજુએ, કન્ટેનરશીપ એ વર્ગની ક્ષમતા છે કે જે વિવિધ વર્ગોના વસ્તુઓને સભ્ય ડેટા તરીકે સમાવી શકે.

વારસા એટલે શું?

ઉપર સૂચવ્યા મુજબ, વંશપરંપરાગત વર્ગ એ તેના દ્વારા વિસ્તૃત કરીને માતાપિતા વર્ગના ગુણધર્મો અને વર્તણૂંકને પ્રાપ્ત કરવા માટેની વર્ગ માટેની ક્ષમતા છે. વંશીયતા અનિવાર્યપણે નવી વ્યાખ્યાયિત વર્ગ દ્વારા પ્રવર્તમાન વર્ગના વિસ્તૃત ગુણધર્મો અને વર્તણૂકને મંજૂરી આપીને કોડ પુનઃઉપયોગ પ્રદાન કરે છે. જો વર્ગ એ બી લંબાય છે, તો વર્ગ બીને પેરેંટ ક્લાસ (અથવા સુપર ક્લાસ) કહેવામાં આવે છે અને ક્લાસ એને બાળક ક્લાસ (અથવા ડેરાઇવ્ડ ક્લાસ / સબ ક્લાસ) કહેવામાં આવે છે. આ ઉદાહરણ દૃશ્યમાં, ક્લાસ એ બધા જાહેર અને સુરક્ષિત વિશેષતાઓ અને સુપર ક્લાસ (બી) ની પદ્ધતિઓનો વારસો મેળવશે. પેટા વર્ગ વૈકલ્પિક રીતે ઓવરરાઇડ કરી શકે છે (પદ્ધતિઓ માટે નવી અથવા વિસ્તૃત વિધેય પૂરો પાડો) પિતૃ વર્ગથી વારસામાં મળેલ વર્તન. વારસામાં OOP માં "એ-એ" સંબંધનું પ્રતિનિધિત્વ કરે છે આ અનિવાર્યપણે એનો અર્થ એ છે કે એ બી પણ બી શબ્દ છે, બી ચોક્કસ વાસ્તવિક વિશ્વ સંસ્થાનોના સામાન્ય વર્ણન સાથે વર્ગ હોઈ શકે છે પરંતુ A ચોક્કસ વિશિષ્ટતાને સ્પષ્ટ કરે છે. વાસ્તવિક વિશ્વ પ્રોગ્રામિંગ સમસ્યામાં, કર્મચારી વર્ગને બનાવવા માટે વ્યક્તિ વર્ગને વિસ્તૃત કરી શકાય છે. તેને વિશેષતા કહેવાય છે પણ તમે પ્રથમ કર્મચારી વર્ગ પણ બનાવી શકો છો અને પછી તેને પર્સન ક્લાર્કે (સામાન્ય રીતે સામાન્યીકરણ) માં સામાન્ય કરી શકો છો. આ ઉદાહરણમાં, કર્મચારી પાસે વ્યક્તિની તમામ સંપત્તિઓ અને વર્તન હશે (i.e. કર્મચારી પણ એક વ્યક્તિ છે) અને તેમાં કેટલીક વધારાની વિધેયો હોઈ શકે છે (જેથી, વ્યક્તિ કર્મચારી નથી) તેમજ.

કન્ટેનરશિપ શું છે?

કન્ટેઈનરશિપ એ વર્ગની ક્ષમતા છે કે જે વિવિધ વર્ગોના વસ્તુઓને સભ્ય ડેટા તરીકે સમાવી શકે. ઉદાહરણ તરીકે, વર્ગ A માં સભ્ય તરીકે વર્ગ B નો પદાર્થ હોઈ શકે છે. અહીં, બી માં વ્યાખ્યાયિત તમામ જાહેર પદ્ધતિઓ (અથવા ફંક્શન્સ) ક્લાસ A ની અંદર ચલાવવામાં આવે છે. ક્લાસ એ કન્ટેનર બની જાય છે, જ્યારે વર્ગ બી સમાવિષ્ટ વર્ગ બની જાય છે. કન્ટેનરશીપને રચના તરીકે પણ ઓળખવામાં આવે છે. આ ઉદાહરણમાં, એવું કહી શકાય કે ક્લાસ એ ક્લાસ B નો બનેલો છે. OOP માં, કન્ટેનરશીપ એ "છે-એ" સંબંધનું પ્રતિનિધિત્વ કરે છે એ નોંધવું અગત્યનું છે કે, કન્ટેનર સમાવિષ્ટ વર્ગની તમામ જાહેર પદ્ધતિઓ ચલાવવા માટે ઍક્સેસ હોવા છતાં, તે વધારાની કાર્યક્ષમતામાં ફેરફાર અથવા પ્રદાન કરવા માટે સક્ષમ નથી. જ્યારે તે વાસ્તવિક દુનિયામાં પ્રોગ્રામિંગ સમસ્યા આવે છે, ત્યારે ક્લાસ ફોર્મમાં ક્લાસ ટેક્સ્ટબોક્સનો એક પદાર્થ સમાવિષ્ટ હોઈ શકે છે, અને આમ કહી શકાય કે ફોર્મમાં ટેક્સ્ટબૉક્સ (અથવા વૈકલ્પિક રીતે, ફોર્મ ટેક્સ્ટબૉક્સથી બનેલું છે) છે.

વારસા અને કોન્ટેનરશિપ વચ્ચેનું તફાવત

ભલે વારસાગત અને કન્ટેનરશિપ બે OOP ખ્યાલો છે, તેઓ પ્રોગ્રામરને હાંસલ કરવા માટે તેઓ શું પરવાનગી આપે છે તે કરતા અલગ છે. વંશપરંપરાગત વર્ગ એ છે કે તેના વર્ગને આધારે પેરેંટ ક્લાસમાંથી વારસો અને વર્તણૂકના વર્ચસ્વ ધરાવતા વર્ગની ક્ષમતા છે, જ્યારે કન્ટેનરશિપ વર્ગની સક્ષમતા છે જે વિવિધ વર્ગોની વસ્તુઓને સભ્ય ડેટા તરીકે સમાવી શકે છે. જો કોઈ વર્ગ વિસ્તૃત થયો હોય, તો તે તમામ જાહેર અને સંરક્ષિત ગુણધર્મો / વર્તણૂકને બોલાવે છે અને તે વર્તણૂક પેટા વર્ગ દ્વારા ફરીથી લખાઈ શકે છે. પરંતુ જો કોઈ વર્ગ બીજામાં સમાયેલો હોય, તો કન્ટેનરને સમાવિષ્ટ કરવા માટે વર્તન બદલવા અથવા તેમાં ફેરફાર કરવાની ક્ષમતા નથી. વારસા, OOP માં "આ-એ" સંબંધનું પ્રતિનિધિત્વ કરે છે, જ્યારે કન્ટેનરશિપ "છે-એ" સંબંધનું પ્રતિનિધિત્વ કરે છે