2011-05-25 21 views
18

सुपर विधि क्या करती है?सुपर() विधि क्या करती है?

public DataFetch(Context context) { 
    super(); 
    this.ctx = context; 
} 

क्या यह कन्स्ट्रक्टर नव निर्मित वस्तु का संदर्भ सुपर क्लास के संदर्भ में करता है? 100% सुनिश्चित नहीं है कि यह कैसे काम करता है। तो क्या super() विधि अनिवार्य रूप से बस मुझे "सुपर क्लास मोड में डाल" कहने के लिए कह रही है कि यह आदमी के शब्दों में कहें?

+1

एनबी यह 'विधि' नहीं है, यह आधार वर्ग में एक निर्माता का जिक्र करने का एक तरीका है। – EJP

उत्तर

32

यह कहता है कि "इसे प्रारंभ करने से पहले मेरे मूल वर्ग को प्रारंभ करें" इसके डिफ़ॉल्ट कन्स्ट्रक्टर को कॉल करके।

+0

क्या इसका अनिवार्य रूप से मतलब है कि इस मामले में नई वस्तु का संदर्भ सुपर क्लास का संदर्भ है? – mergesort

+1

नहीं, सुपरक्लास के पास आपकी कक्षा में परिभाषित किसी भी चर के लिए कोई प्रत्यक्ष संदर्भ नहीं है। आपको एक ऐसे कन्स्ट्रक्टर को कॉल करना होगा जिसमें संदर्भ तर्क हो। – dmon

9

super() अभिभावक के वर्ग निर्माता (ऑब्जेक्ट पर वापस सभी तरह) कहते हैं और यह वर्तमान कक्षा के निर्माता से पहले चलता है।

2

"सुपरक्लास संदर्भ" जैसी कोई चीज़ नहीं है, संदर्भ छवि संसाधनों, सिस्टम सेवाओं ect जैसे अनुप्रयोग पर्यावरण से जानकारी तक पहुंचने के लिए एक इंटरफेस है। संदर्भ जो कुछ भी आप पास करेंगे और वह वर्ग स्वतंत्र होगा। उदाहरण के लिए, Activity कॉन्टेक्स्ट इंटरफ़ेस का कार्यान्वयन है जिसका आप उपयोग करने की संभावना रखते हैं और उस गतिविधि के भीतर से जो भी दृश्य आप करते हैं, वही संदर्भ होगा जो वास्तव में गतिविधि द्वारा प्रदान किया जाता है।

0

जब किसी निर्माता में उपयोग किया जाता है, तो super() कीवर्ड अकेले दिखाई देता है और this कीवर्ड का उपयोग करने से पहले इसका उपयोग किया जाना चाहिए। this कीवर्ड का उपयोग किसी ऑब्जेक्ट ऑब्जेक्ट पर फ़ंक्शंस को कॉल करने के लिए किया जा सकता है।

संबंधित मुद्दे