એબ્સ્ટ્રેક્ટ ક્લાસ અને કોંક્રિટ ક્લાસ વચ્ચેનો તફાવત

Anonim

એબ્સ્ટ્રેક્ટ ક્લાસ vs કોંક્રિટ ક્લાસ

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

કોંક્રિટ વર્ગ શું છે?

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

એબ્સ્ટ્રેક્ટ ક્લાસ શું છે?

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

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

એબ્સ્ટ્રેક્ટ ક્લાસ અને કોંક્રિટ ક્લાસ વચ્ચે શું તફાવત છે?

એબ્સ્ટ્રેક્ટ ક્લાસ સામાન્ય રીતે આંશિક કે અમલીકરણ નથી. બીજી બાજુ, કોંક્રિટ વર્ગો હંમેશા તેના વર્તનનું પૂર્ણ અમલીકરણ ધરાવે છે. કોંક્રિટ વર્ગોથી વિપરીત, અમૂર્ત વર્ગો ઇન્સ્ટિટ કરી શકાતા નથી. તેથી અમૂર્ત વર્ગોને તેમને ઉપયોગી બનાવવા માટે વિસ્તૃત કરવાની જરૂર છે. અમૂર્ત વર્ગો અમૂર્ત પદ્ધતિઓ હોઈ શકે છે, પરંતુ કોંક્રિટ વર્ગો નથી કરી શકતા. જ્યારે એક અમૂર્ત વર્ગ વિસ્તૃત થાય છે, ત્યારે તમામ પદ્ધતિઓ (બંને અમૂર્ત અને કોંક્રિટ) વારસાગત થાય છે. વારસાગત વર્ગ કોઈ પણ અથવા બધી પદ્ધતિઓનો અમલ કરી શકે છે. જો તમામ અમૂર્ત પદ્ધતિ અમલમાં ન આવે તો, તે વર્ગ પણ એક અમૂર્ત વર્ગ બની જાય છે.