એબ્સ્ટ્રેક્ટ ક્લાસ અને ઇન્ટરફેસ વચ્ચેનો તફાવત C #

Anonim

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

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

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

ઈન્ટરફેસ શું છે?

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

એબ્સ્ટ્રેક્ટ ક્લાસ વિ ઇન્ટરફેસ: એબ્સ્ટ્રેક્ટ ક્લાસ અને ઈન્ટરફેસ વચ્ચેનો તફાવત C #

મલ્ટીપલ ઇનહેરીટીન્સ

  1. - એક ક્લાસ માત્ર એક અમૂર્ત વર્ગનો ઉપયોગ કરી શકે છે, તેથી બહુવિધ વારસામાં સપોર્ટેડ નથી. બીજી બાજુ ઈન્ટરફેસ, બહુવિધ વારસાને આધાર આપી શકે છે, જેનો અર્થ એ કે વર્ગ કોઈ પણ નંબરના વારસાને મેળવી શકે છે. વ્યાખ્યા
  2. ના એબ્સ્ટ્રેક્ટ ક્લાસ અને ઈન્ટરફેસ સી # - એક અમૂર્ત વર્ગ એ એક વિશેષ પ્રકારનો વર્ગ છે જેમાં કોઈ અમલીકરણની વ્યાખ્યા નથી. અમલીકરણ તર્ક તેની મેળવેલા વર્ગો દ્વારા પ્રદાન કરવામાં આવે છે. તેમાં અમૂર્ત તેમજ બિન-અમૂર્ત પદ્ધતિઓ હોઈ શકે છે.બીજી તરફ ઈન્ટરફેસ, ફક્ત એક પેટર્ન છે જે કંઈ પણ કરી શકતું નથી. તકનિકી રીતે, તે માત્ર એક ખાલી શેલ છે અમલીકરણ
  3. - એક અમૂર્ત વર્ગમાં વ્યાખ્યા અને તેની અમલીકરણ બંને હોઈ શકે છે. તે એક અપૂર્ણ વર્ગ છે જે ઇન્સ્ટિટ થઈ શકતું નથી. ઇન્ટરફેસમાં કોઈ પણ કોડ વિના કાર્યક્ષમતાના સહી હોઈ શકે છે.
  4. ઍક્સેસ મોડિફાયર્સ - એક અમૂર્ત વર્ગમાં સબ, ફંક્શન્સ, પ્રોપર્ટીઝ, વગેરે જેવા ઘણા એક્સેસ મોડિફાયર્સ હોઈ શકે છે, જ્યારે ઇન્ટરફેસને એક્સેસ મોડિફાયર હોવાની મંજૂરી નથી અને તમામ પધ્ધતિઓ સર્વસામાન્ય રીતે જાહેર તરીકે વ્યાખ્યાયિત થવી જોઈએ. એકસૂત્રતા
  5. - એક અમૂર્ત વર્ગનો ઉપયોગ એક જ પ્રકારની વર્તણૂક, અને સ્થિતિના અમલ માટે થાય છે, જ્યારે ઇન્ટરફેસ અમલીકરણ માટે ઉપયોગમાં લેવામાં આવે છે જે માત્ર પદ્ધતિ સહીઓને જ શેર કરે છે. ઘોષણા
  6. - એક અમૂર્ત વર્ગ બીજા તમામ વર્ગો માટે એક મૂળ વર્ગ તરીકે કાર્ય કરે છે જેથી તે કોઈ પણ વેરિયેબલને જાહેર કરી શકે અથવા ઉપયોગ કરી શકે, જ્યારે ઇન્ટરફેસને કોઈપણ વેરિયેબલ જાહેર કરવાની પરવાનગી નથી. નિર્માતા ઘોષણા
  7. - જ્યારે એક અમૂર્ત વર્ગમાં કંસ્ટ્રક્ટર ઘોષણા હોઈ શકે છે, એક ઇન્ટરફેસમાં કન્સ્ટ્રક્ટર ઘોષણા ન હોઈ શકે. કોર વિ પેરીફેરલ
  8. - એક અમૂર્ત વર્ગનો ઉપયોગ વર્ગના મૂળ ઓળખને વ્યાખ્યાયિત કરવા માટે થાય છે અને તે જ ડેટા પ્રકારનાં ઑબ્જેક્ટ્સ માટે ઉપયોગમાં લઈ શકાય છે. બીજી બાજુ, ઇન્ટરફેસનો ઉપયોગ વર્ગની પેરિફેરલ ક્ષમતાને વ્યાખ્યાયિત કરવા માટે થાય છે. સખત વિરુદ્ધ પૂરવઠો
  9. - ઓછામાં ઓછા એક ડેવલપરના પરિપ્રેક્ષ્યમાં, વિધેયની દ્રષ્ટિએ એક અમૂર્ત વર્ગ વધુ નમ્ર છે, જ્યારે ઇન્ટરફેસ વધુ સખત હોય છે. એબ્સ્ટ્રેક્ટ ક્લાસ વિ ઇન્ટરફેસ: ટેબલ ફોર્મ

એબ્સ્ટ્રેક્ટ ક્લાસ

ઈન્ટરફેસ

એક અમૂર્ત વર્ગમાં ફંક્શન્સ, સબ અને પ્રોપર્ટીઝના સભ્ય ઘોષણા માટે બધા એક્સેસ મોડિફાયર હોઈ શકે છે.

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

અમૂર્ત વર્ગ અને ઇન્ટરફેસ વચ્ચે શું તફાવત છે? કોઈ તકનીકી ઇન્ટરવ્યૂમાં પૂછવામાં આવતા આ સૌથી સામાન્ય પ્રશ્નો પૈકી એક છે. તમને કોઈ પણ C # ટ્યુટોરીયલમાં અમૂર્ત વર્ગો અને ઇન્ટરફેસો વિશે વધુ માહિતી મળી શકે છે, જો કે, બંને વચ્ચેના તફાવતને સમજવું એ ખૂબ મુશ્કેલ ભાગ છે. તમે શોધી શકો તે બધી માહિતીને એકત્રિત કરી શકો છો અને હજી પણ તે પૂરતું ન મળી શકે. ઠીક છે, કલ્પનાત્મક રીતે બંને પ્રોગ્રામિંગમાં સૌથી મહત્વપૂર્ણ શરતો છે અને તે ખૂબ જ સમાન છે, જોકે, કાર્યક્ષમતાના સંદર્ભમાં તેઓ ઘણું અલગ છે. જ્યારે એક અમૂર્ત વર્ગ એક વિશેષ પ્રકારનો વર્ગ છે જે અન્ય વર્ગો માટેના આધાર તરીકે કાર્ય કરે છે, બીજી બાજુ, ઇન્ટરફેસ, ફક્ત સભ્યના ઘોષણાઓ સાથે ખાલી શેલ છે.