एनकैप्सुलेशन और एब्स्ट्रक्शन के बीच अंतर


87

मेरा आज इंटरव्यू था। मैं OOP से एक सवाल था , Encapsulation & Abstraction के बीच अंतर के बारे में ?

मैंने उसे अपने ज्ञान के लिए उत्तर दिया कि एनकैप्सुलेशन मूल रूप से डेटा सदस्यों और सदस्य कार्यों को कक्षा नामक एक इकाई में बाँधने के लिए है । जबकि अमूर्तता मूल रूप से कार्यान्वयन की जटिलता को छिपाने और उपयोगकर्ताओं तक पहुंच को आसान बनाने के लिए है। मुझे लगा कि वह मेरे जवाब से ठीक हो जाएगी। लेकिन उसने कहा, अगर दोनों का उद्देश्य जानकारी छिपाना है तो इन दोनों के बीच वास्तविक अंतर क्या है? मैं उसका कोई जवाब नहीं दे पाया।

इस सवाल को पूछने से पहले, मैंने इन दोनों OOP की अवधारणाओं के बीच अंतर के बारे में StackOverFlow पर अन्य सूत्र पढ़े । लेकिन मैं साक्षात्कारकर्ता को समझाने की स्थिति में अपने आप को नहीं पा रहा हूं।

किसी को भी एक सरल उदाहरण के साथ इसे सही कर सकते हैं?


13
और आखिरकार, क्या आपको काम मिला? :)
एड्रियन Ksicarczyk

1
@PFbee दुर्भाग्यपूर्ण!
अहिल खान

3
मुझे नहीं पता कि लोग एब्सट्रैक्शन और एनकैप्सुलेशन की तुलना क्यों करते हैं। हम उन्हें दो अलग-अलग ओओपी अवधारणाओं के रूप में क्यों स्वीकार नहीं कर सकते।
मिस्टर अस्क्वारे


@WpfBee Abstraction का छिपाने से कोई लेना-देना नहीं है, बस मेरे जवाब की जांच करें
S Vinesh

जवाबों:


74

एनकैप्सुलेट्स छुपा चर या कुछ कार्यान्वयन जो बाहरी रूप से सीधे इसे एक्सेस करने से रोकने के लिए एक वर्ग में इतनी बार बदला जा सकता है । उन्हें इसे गेट्टर और सेटर विधियों के माध्यम से एक्सेस करना होगा।

Abstraction का उपयोग कुछ छिपाने के लिए भी किया जाता है, लेकिन उच्च डिग्री (क्लास, इंटरफ़ेस) में । ग्राहक एक अमूर्त वर्ग (या इंटरफ़ेस) का उपयोग करते हैं जो इस बात की परवाह नहीं करते हैं कि यह कौन था या नहीं, उन्हें बस यह जानना होगा कि यह क्या कर सकता है।


7
उत्तम। यह मुझे लगता है कि आपका उत्तर मेरे साक्षात्कारकर्ता प्रश्न को लक्षित कर रहा है। मैं एक व्यावहारिक उदाहरण के साथ आपके उत्तर को पुन: प्रसारित करने की कोशिश कर रहा हूं। कृपया मुझे बताएं, यदि यह आपके उत्तर को सही ठहराता है। आइए हम टेलीविजन का एक उदाहरण लेते हैं। एनकैप्सुलेशन आंतरिक सर्किट, एलईडी, आदि है जो इसे टीवी बनाने के लिए संयोजित करता है। एब्स्ट्रेक्शन ऑन-ऑफ, साउंड, चैनल सेटिंग और इसे संचालित करने के लिए दिए गए अन्य बटन हैं।
WpfBee

दोस्तों अमूर्तता को छिपाने के कार्यान्वयन से कोई लेना-देना नहीं है ... अमूर्त एक वर्ग के साथ बहुरूप से बातचीत करने की एक विधि है
मॉर्टालस

1
@ मॉर्टालस - मैं आपके 1 कथन से सहमत नहीं हूँ "अमूर्त का छिपाने के कार्यान्वयन से कोई लेना-देना नहीं है"। मुझे लगता है, जब हम एब्सट्रैक्शन कॉन्सेप्ट सीखना शुरू करते हैं तो सबसे पहले जो हमें सिखाया जा रहा है वह यह है कि हम कार्यान्वयन की जटिलता को छिपाते हैं और इसका उपयोग करने के लिए उपयोगकर्ता को कुछ इंटरफ़ेस प्रदान करते हैं। क्योंकि उपयोगकर्ता कार्यान्वयन जटिलता में दिलचस्पी नहीं ले सकता है। आप टीवी या एसी का व्यावहारिक उदाहरण ले सकते हैं। दूसरी बात यह है कि यदि यह कार्यान्वयन को छिपाता नहीं है तो हम अमूर्त वर्ग में एक विधि प्रदान करते हैं जिसमें शरीर नहीं है। हम यहां स्पष्ट रूप से कार्यान्वयन को छिपा रहे हैं।
WpfBee

1
@ मॉर्टालस - इसके अलावा, आपने एक विकी लिंक का उल्लेख किया है। यह पहला कथन है - "कंप्यूटर विज्ञान में, अमूर्त प्रक्रिया वह प्रक्रिया है जिसके द्वारा डेटा और कार्यक्रमों को इसके अर्थ (शब्दार्थ) के समान एक निरूपण के साथ परिभाषित किया जाता है, जबकि कार्यान्वयन विवरण को छिपाते हुए। अमूर्त विवरण को कम करने और निकालने का प्रयास करता है। प्रोग्रामर एक बार में कुछ अवधारणाओं पर ध्यान केंद्रित कर सकता है। " खुद पता चलता है कि अमूर्त का उद्देश्य कार्यान्वयन को छिपाना है। मैं आपके 2 स्टेटमेंट से सहमत हूं लेकिन 1 के साथ नहीं।
WpfBee

1
मुझे लगता है कि एनकैप्सुलेशन केवल एक इकाई के निर्माण के बारे में अधिक है, इसके बारे में आप इसे छिपाते हैं या नहीं। जहां एब्सट्रैक्शन चीजों को छिपाने के बारे में अधिक है, अगर मैं गलत हूं तो कृपया सही करें।
राज २४०


12

अमूर्त - वस्तुओं के एक सेट के लिए सामान्य आवश्यक विशेषताओं की पहचान करने की प्रक्रिया (और इस प्रक्रिया का परिणाम) है। कोई कह सकता है कि अमूर्तता सामान्यीकरण की प्रक्रिया है: विचाराधीन सभी वस्तुओं को वस्तुओं के एक सुपरसेट में शामिल किया गया है, जिनमें से सभी में दिए गए गुण हैं (लेकिन अन्य मामलों में अलग हैं)।

एनकैप्सुलेशन - डेटा और फ़ंक्शन को एक इकाई में जोड़कर डेटा को जोड़ने की प्रक्रिया है, ताकि बाहरी दुनिया से आंतरिक कार्यान्वयन को छिपाया जा सके।

यह एक विशिष्ट प्रोग्रामिंग भाषा से संबंधित सामान्य उत्तर नहीं है (जैसा कि प्रश्न था)। तो जवाब है: अमूर्तता और एनकैप्सुलेशन में कुछ भी सामान्य नहीं है। लेकिन उनका कार्यान्वयन एक-दूसरे से संबंधित हो सकता है (जैसे जावा में: एनकैप्सुलेशन - विवरण एक वर्ग में छिपे हुए हैं, एब्सट्रैक्शन - विवरण एक वर्ग या इंटरफ़ेस में बिल्कुल भी मौजूद नहीं हैं)।


11

एनकैप्सुलेशन: रैपिंग कोड और डेटा एक साथ एक यूनिट में। Classएनकैप्सुलेशन का एक उदाहरण है, क्योंकि यह विधि और संपत्ति को लपेटता है।

अमूर्तता: आंतरिक विवरणों को छिपाना और केवल कार्यक्षमता दिखाना। अमूर्तता इस बात पर ध्यान केंद्रित करती है कि वस्तु कैसे करती है इसके बजाय क्या करती है। यह कक्षाओं का सामान्यीकृत दृश्य प्रदान करता है।

int number = 5;
string aStringNumber = number.ToString(); 

यहाँ, ToString () अमूर्त है। और यह तंत्र numberचर कैसे स्ट्रिंग में परिवर्तित होता है और कैसे आरंभ होता aStringNumberहै यह एनकैप्सुलेशन है।

आइए हम कैलकुलेटर का एक वास्तविक विश्व उदाहरण लेते हैं। एनकैप्सुलेशन आंतरिक सर्किट, बैटरी, आदि है, जो इसे कैलकुलेटर बनाने के लिए जोड़ती है। एब्स्ट्रेक्शन विभिन्न बटन जैसे ऑन-ऑफ, स्पष्ट और इसे संचालित करने के लिए प्रदान किए गए अन्य बटन हैं।


7

अमूर्तता: आमतौर पर वर्गों के एक समूह को बहुरूपता प्रदान करने के लिए किया जाता है। एक सार वर्ग को तत्काल नहीं किया जा सकता है, इसलिए एक और वर्ग को अधिक ठोस प्रतिनिधित्व बनाने के लिए इसे प्राप्त करना होगा।

अमूर्त वर्ग का एक सामान्य उपयोग उदाहरण एक टेम्पलेट विधि डिजाइन पैटर्न का कार्यान्वयन हो सकता है जहां एक सार इंजेक्शन बिंदु पेश किया जाता है ताकि कंक्रीट वर्ग इसे अपने "कंक्रीट" तरीके से लागू कर सके।

देखें: http://en.wikipedia.org/wiki/Abstraction_(computer_science)

एनकैप्सुलेशन: यह क्लाइंट से एक विशिष्ट वर्ग के कार्यान्वयन जटिलता को छिपाने की प्रक्रिया है जो इसका उपयोग करने जा रहा है, ध्यान रखें कि "क्लाइंट" एक प्रोग्राम हो सकता है या उस व्यक्ति को इवेंट कर सकता है जिसने क्लास लिखा था।

देखें: http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)


1
अमूर्त अमूर्त वर्ग से संबंधित है ??
विष्णु विश्वनाथ

@vishnuviswanath, हाँ, हम अमूर्त वर्ग और इंटरफेस का उपयोग करके अमूर्तता को लागू कर सकते हैं।
invzbl3

3

एक महान लेख है जो एब्सट्रैक्शन, एनकैप्सुलेशन और सूचना के बीच के अंतर को गहराई से छूता है: http://www.tonymarston.co.uk/php-mysql/abstraction.txt

यहाँ लेख से निष्कर्ष है:

अमूर्तता, जानकारी छिपाना, और एनकैप्सुलेशन बहुत अलग हैं, लेकिन उच्च-संबंधित, अवधारणाएं। कोई यह तर्क दे सकता है कि अमूर्तता एक तकनीक है जो हमें यह पहचानने में मदद करती है कि कौन सी विशिष्ट जानकारी दिखाई देनी चाहिए, और कौन सी जानकारी छिपी होनी चाहिए। इनकैप्सुलेशन तब सूचना को इस तरह से पैकेजिंग करने की तकनीक है कि क्या छिपाया जाना चाहिए, और जो दिखाई देने का इरादा है उसे दिखाई दे।


2

दोनों में अंतर सिर्फ व्यू पॉइंट
एनकैप्सुलेशन शब्द का उपयोग डेटा को छिपाने के लिए किया जाता है यदि हमारा उद्देश्य क्लाइंट को हमारे तर्क के अंदर देखने को रोकने के लिए है

Abstraction शब्द का उपयोग डेटा छिपाने के लिए किया जाता है यदि हमारा उद्देश्य हमारे क्लाइंट को आउट साइड दृश्य दिखाना है

बाहर देखने का मतलब है कि मान लो

BubbleSort(){
//code 
swap(x,y);
}

यहां हम अपने ग्राहक को केवल यह दिखाने के लिए कि हम किस तर्क को लागू कर रहे हैं, बबल सॉर्ट में स्वैप का उपयोग करते हैं, यदि हम यहां स्वैप (x, y) को पूरे कोड के साथ बदलते हैं, तो एक ही उदाहरण में वह / वह हमारे तर्क को समझ नहीं सकता है


2

हां, यह सच है कि एब्सट्रैक्शन और एनकैप्सुलेशन छिपने के बारे में हैं।

  • केवल प्रासंगिक विवरणों का उपयोग करना और डिज़ाइन स्तर पर अनावश्यक डेटा को छिपाना Abstraction कहलाता है । (एक वर्ग 'कार' के लिए केवल प्रासंगिक गुणों का चयन करने के लिए इसे अधिक सार या सामान्य बनाने के लिए।)

  • एनकैप्सुलेशन , कार्यान्वयन स्तर पर डेटा को छिपाना है । जैसे वास्तव में प्रत्यक्ष / बाहरी पहुंच से डेटा को कैसे छिपाना है। यह बाहरी पहुंच को रोकने के लिए एकल इकाई / इकाई में डेटा और विधियों को बांधकर किया जाता है। इस प्रकार, एन्कैप्सुलेशन को कार्यान्वयन स्तर पर डेटा छिपाने के रूप में भी जाना जाता है।


3
क्या आप बता सकते हैं कि यह उत्तर 12 अन्य मौजूदा उत्तरों से कैसे भिन्न है?
स्टीफन राउच

2

encapsulation:

कुछ छुपाना, दवा कैप्सूल की तरह। हमें नहीं पता कि कैप्सूल में क्या है, हम इसे लेते हैं। प्रोग्रामिंग में समान - हम सिर्फ विधि या संपत्ति के कुछ विशेष कोड को छिपाते हैं और यह केवल आउटपुट देता है, कैप्सूल के रूप में। संक्षेप में, एनकैप्सुलेशन डेटा छुपाता है।

अमूर्त:

अमूर्तता का अर्थ है तर्क या कार्यान्वयन को छिपाना। उदाहरण के लिए, हम टैबलेट लेते हैं और उनका रंग देखते हैं लेकिन यह नहीं जानते कि इसका उद्देश्य क्या है और यह शरीर के साथ कैसे काम करता है।


0

मतिहीनता

जावा में, एब्स्ट्रैक्शन का अर्थ है, वास्तविक दुनिया की जानकारी को छिपाना। यह पार्टी के बीच "सेवा का उपयोग करने के लिए हमें क्या करना चाहिए" के बारे में बताने के लिए अनुबंध स्थापित करता है।

उदाहरण के लिए, एपीआई के विकास में, दुनिया में वास्तविक कार्यान्वयन के बजाय सेवा की केवल सारगर्भित जानकारी ही सामने आई है। जावा में इंटरफेस इस अवधारणा को बहुत अच्छी तरह से प्राप्त करने में मदद कर सकता है।

इंटरफ़ेस पार्टियों, उदाहरण, निर्माता और उपभोक्ता के बीच अनुबंध प्रदान करता है। निर्माता उपभोक्ता को यह बताए बिना माल का उत्पादन करता है कि उत्पाद कैसे बनाया जा रहा है। लेकिन, इंटरफ़ेस के माध्यम से, निर्माता ने सभी उपभोक्ता को बताया कि उत्पाद क्या खरीद सकता है। अमूर्तता की मदद से, निर्माता अपने उपभोक्ताओं को उत्पाद का विपणन कर सकता है।

encapsulation:

एनकैप्सुलेशन एब्सट्रैक्शन का एक स्तर नीचे है। एक ही उत्पाद कंपनी एक दूसरे के उत्पादन समूह से जानकारी परिरक्षण का प्रयास करती है। उदाहरण के लिए, यदि कोई कंपनी वाइन और चॉकलेट का उत्पादन करती है, तो एनकैप्सुलेशन जानकारी को ढालने में मदद करता है कि प्रत्येक उत्पाद एक दूसरे से कैसे बनाया जा रहा है।

  1. अगर मेरे पास शराब के लिए अलग पैकेज एक और चॉकलेट के लिए एक और एक है, और यदि सभी वर्गों को पैकेज में डिफ़ॉल्ट एक्सेस संशोधक के रूप में घोषित किया जाता है, तो हम सभी वर्गों के लिए पैकेज स्तर इनकैप्सुलेशन दे रहे हैं।
  2. एक पैकेज के भीतर, यदि हम प्रत्येक वर्ग (सदस्य क्षेत्र) को निजी घोषित करते हैं और उन क्षेत्रों तक पहुँचने के लिए एक सार्वजनिक तरीका रखते हैं, तो इस तरह से उन क्षेत्रों के लिए कक्षा के स्तर को इनकैप्सुलेशन दिया जाता है।

0

बात को स्पष्ट करने के लिए बस कुछ और बिंदु,

किसी को डेटा एब्स्ट्रैक्शन और अमूर्त वर्ग को भ्रमित नहीं करना चाहिए। वे भिन्न हैं।

आम तौर पर हम कहते हैं कि अमूर्त वर्ग या तरीका मूल रूप से कुछ छिपाने के लिए है। लेकिन नहीं .. यह गलत है। अमूर्त शब्द का अर्थ क्या है? Google खोज का कहना है कि अंग्रेजी शब्द अमूर्तता का मतलब है

"विचार में या एक विचार के रूप में मौजूद है, लेकिन एक भौतिक या ठोस अस्तित्व नहीं है।"

और अमूर्त वर्ग के मामले में भी सही है। यह विधि की सामग्री को छिपा नहीं रहा है, लेकिन विधि की सामग्री पहले से ही खाली है (भौतिक या ठोस अस्तित्व नहीं है) लेकिन यह निर्धारित करता है कि विधि कैसे होनी चाहिए (विचार में या विचार के रूप में विद्यमान है) या विधि को दल में होना चाहिए ।

तो आप वास्तव में अमूर्त तरीकों का उपयोग कब करते हैं?

  • जब बेस क्लास से एक विधि प्रत्येक बच्चे के वर्ग में भिन्न होगी जो इसे विस्तारित करती है।
  • और इसलिए आप यह सुनिश्चित करना चाहते हैं कि बाल वर्ग ने इस कार्य को कार्यान्वित किया है।
  • यह उस पद्धति को भी सुनिश्चित करता है, जैसे अनिवार्य हस्ताक्षर करने के लिए, इसके पास एन संख्या के पैरामीटर होने चाहिए।

अमूर्त वर्ग के बारे में! - एक सार वर्ग केवल बढ़ाया जा सकता है! पर क्यों ?

  • अमूर्त पद्धति वाले एक वर्ग को अपना स्वयं का उदाहरण बनाने से रोका जाना चाहिए क्योंकि इसमें अमूर्त विधियों का कोई सार्थक कार्यान्वयन नहीं हो रहा है।
  • आप एक वर्ग को भी सार बना सकते हैं, अगर किसी कारण से आप पाते हैं कि यह आपके उस वर्ग के उदाहरण से कम है।

एक सार वर्ग हमें इसके नए उदाहरण बनाने से बचने में मदद करता है!

एक कक्षा में एक सार पद्धति प्रदान की गई हस्ताक्षर के साथ बच्चे के वर्ग को उस फ़ंक्शन को लागू करने के लिए मजबूर करती है!


0

ऊपर चर्चा की गई उसी उदाहरण के साथ इसे समझाता हूं। कृपया उसी टीवी पर विचार करें।

कैप्सूलीकरण : रिमोट के साथ हम जो समायोजन कर सकते हैं, वह एक अच्छा उदाहरण है - वॉल्यूम यूपी / डीओटी, कलर और कंट्रास्ट - हम जो कर सकते हैं वह इसे न्यूनतम और अधिकतम मूल्य प्रदान करने के लिए समायोजित कर सकते हैं और रिमोट में प्रदान की गई चीज़ों से परे कुछ भी नहीं कर सकते - यहां प्राप्त करने वाले और सेटर की कल्पना करें (सेटर फ़ंक्शन यह जांच करेगा कि क्या प्रदान किया गया मान वैध है या नहीं, यह प्रक्रिया को संसाधित करता है यदि हमें परिवर्तन करने की अनुमति नहीं देगा - जैसे हम शून्य से परे की मात्रा को कम नहीं कर सकते हैं यहां तक ​​कि हम वॉल्यूम को दबाते हैं बटन सौ बार)।

अमूर्त : हम यहां एक ही उदाहरण ले सकते हैं लेकिन एक उच्च डिग्री / संदर्भ के साथ। वॉल्यूम डाउन बटन की मात्रा कम हो जाएगी - और यह वह जानकारी है जो हम उपयोगकर्ता को प्रदान करते हैं और उपयोगकर्ता को न तो रिमोट के अंदर अवरक्त ट्रांसमीटर के बारे में पता होता है और न ही टीवी में रिसीवर और सिग्नल और माइक्रोप्रोसेसर पार्स करने की बाद की प्रक्रिया टीवी के अंदर वास्तुकला। सीधे शब्दों में कहें तो यह संदर्भ में आवश्यक नहीं है - बस जो आवश्यक है उसे प्रदान करें। कोई भी पाठ्य पुस्तक की परिभाषा को आसानी से यहाँ दे सकता है। यानी, आंतरिक कार्यान्वयन को छिपाना और केवल यह प्रदान करना कि वह ऐसा करने के बजाय क्या करेगा!

आशा है कि यह थोड़ा स्पष्ट करता है!


0

यदि मैं वह हूं जिसने साक्षात्कार का सामना किया है, तो मैं कहूंगा कि अंत-उपयोगकर्ता के परिप्रेक्ष्य में अमूर्तता और एनकैप्सुलेशन काफी समान हैं। यह जानकारी छुपाने के अलावा और कुछ नहीं है। सॉफ़्टवेयर डेवलपर परिप्रेक्ष्य के अनुसार, एब्स्ट्रेक्शन डिज़ाइन स्तर पर समस्याओं को हल करता है और एनकैप्सुलेशन कार्यान्वयन स्तर में समस्या को हल करता है


0

संक्षेप में, Abstractionकक्षा के उदाहरण के साथ बातचीत करने में सक्षम होने के लिए एक इंटरफ़ेस को लागू करने और लागू करने से वर्ग स्तर पर होता है। जबकि, Encapsulationसूचना छिपाने के लिए उपयोग किया जाता है; उदाहरण के लिए, प्रत्यक्ष पहुंच पर प्रतिबंध लगाने के लिए सदस्य को निजी बनाना और संकेत पहुंच के लिए उनके लिए गेटर्स और सेटर उपलब्ध कराना।


0

हाँ !!!! अगर मैं कहूं कि एनकैप्सुलेशन एक उन्नत विशिष्ट स्कोप अमूर्तता का एक प्रकार है ,

आपमें से कितने लोग मेरे उत्तर को पढ़ते हैं / बढ़ाते हैं। आइए खोदते हैं कि मैं ऐसा क्यों कह रहा हूं।

मुझे अपनी दावेदारी से पहले दो बातें साफ करनी होंगी।

एक डेटा छुपा रहा है और दूसरा एक अमूर्त है

डेटा छिपाना

अधिकांश समय, हम अपने आंतरिक डेटा तक सीधे पहुंच नहीं देंगे। हमारे आंतरिक डेटा को सीधे बाहर नहीं जाना चाहिए जो कि एक बाहरी व्यक्ति है जो सीधे हमारे आंतरिक डेटा तक नहीं पहुंच सकता है। यह सुरक्षा के बारे में है क्योंकि हमें किसी विशेष वस्तु के आंतरिक राज्यों की रक्षा करने की आवश्यकता है।


मतिहीनता

सादगी के लिए, आंतरिक कार्यान्वयन को छिपाने को अमूर्तता कहा जाता है। अमूर्तता में, हम केवल आवश्यक चीजों पर ध्यान केंद्रित करते हैं। असल में, हम अमूर्तता में "क्या करें" और "कैसे करें" के बारे में बात करते हैं। सुरक्षा भी अमूर्तता से प्राप्त की जा सकती है क्योंकि हम "हम कैसे लागू कर रहे हैं" को उजागर नहीं करने जा रहे हैं। स्थिरता को बढ़ाया जाएगा क्योंकि हम कार्यान्वयन को बदल सकते हैं लेकिन यह हमारे अंतिम उपयोगकर्ता को प्रभावित नहीं करेगा।


मैंने कहा, "एनकैप्सुलेशन एक उन्नत विशिष्ट स्कोप अमूर्तता का एक प्रकार है"। क्यों? क्योंकि हम डेटा छिपाना + अमूर्त के रूप में एनकैप्सुलेशन देख सकते हैं

encapsulation = डेटा छिपाना + अमूर्त करना

एन्कैप्सुलेशन में, हमें डेटा को छिपाने की आवश्यकता है ताकि बाहरी व्यक्ति डेटा को न देख सके और हमें ऐसे तरीके प्रदान करने की आवश्यकता होती है जो डेटा तक पहुंचने के लिए उपयोग किए जा सकते हैं। इन तरीकों में उन चीजों के अंदर सत्यापन या अन्य विशेषताएं हो सकती हैं जो किसी बाहरी व्यक्ति से छिपी हों। इसलिए यहां, हम पहुंच विधियों के कार्यान्वयन को छिपा रहे हैं और इसे अमूर्तन कहा जाता है।

यही कारण है कि मैंने कहा कि इनकैप्सुलेशन के ऊपर एक तरह का एब्सट्रैक्ट है।

तो अंतर कहां है ?

अंतर यह है कि अगर हम सादगी, स्थिरता और सुरक्षा के लिए उपयोगकर्ता से कुछ छिपा रहे हैं, तो यह अमूर्तता एक सामान्य बात है, और

एनकैप्सुलेशन एक विशिष्ट है जिसके लिए आंतरिक राज्यों की सुरक्षा से संबंधित है जहां हम आंतरिक स्थिति (डेटा छिपाना) छिपा रहे हैं और हम डेटा तक पहुंचने के लिए तरीके प्रदान कर रहे हैं और उन तरीकों का कार्यान्वयन बाहरी व्यक्ति (अमूर्त) से भी छिपा हुआ है।


-2

अमूर्तता: न्यूनतम कार्य और चर क्या हैं जिन्हें हमारी कक्षा के बाहर उजागर किया जाना चाहिए।

एनकैप्सुलेशन: इस आवश्यकता को कैसे प्राप्त करें, इसका अर्थ कैसे लागू करें।


अतिक्रमण अमूर्तता प्राप्त करने का साधन नहीं है। वे 2 अलग-अलग अवधारणाएं हैं, लेकिन एक सूक्ष्म लिंक है।
वार्श

मुझे लगता है कि दोनों अलग-अलग अवधारणाएं नहीं हैं, bez u सार वर्ग के साथ इनकैप्सुलेशन प्राप्त कर सकते हैं।
किशोर कुमार रेड्डी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.