2012-03-16 18 views
6

मुझे पता है कि जब आप जावा में final विधि बनाते हैं, तो इसे ओवरराइड नहीं किया जा सकता है।क्या मेरे पास एक ही पंक्ति पर दोनों कीवर्ड नहीं हो सकते हैं: निजी फ़ाइनल ...()?

जब कोई विधि private होती है, तो इसे केवल उस श्रेणी के सदस्यों और सदस्यों द्वारा एक्सेस किया जा सकता है जिसमें विधि मौजूद है।

तो, इसका मतलब यह है के बाद से विधि पहुँचा नहीं जा सकता यह अगर यह अधिरोहित जा सकता है, क्योंकि मैं निम्नलिखित घोषणा लिखा जाँच करने की कोशिश कर किसी काम का नहीं है कि और मैं निम्नलिखित चेतावनी मिलती है:

निजी विधि addCode अंतिम

private final void addCode(String code) 
    { 
     //codes here... 
    } 

उत्तर

8

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

यह लिखने के लिए एक दस्तावेज़ लॉक करने जैसा है जब फ़ाइल तक पहुंच वाला एकमात्र व्यक्ति आप होता है।

+1

... लगभग अपने घर को लॉक करने वाले चंद्रमा की तरह। –

2

एक निजी विधि को ओवरराइड नहीं किया जा सकता है क्योंकि यह बाल कक्षाओं के लिए दृश्यमान नहीं है।

+0

क्रोकाइन, यही कारण है कि मेरे पास एक ही घोषणा रेखा पर निजी और अंतिम दोनों नहीं हो सकते हैं? – helpdesk

+0

यह एक चेतावनी है क्योंकि इसे निजी अंतिम विधि रखने का कोई मतलब नहीं है। नोट: एक निजी अंतिम चर समझ में आता है। –

1

यदि यह अंतिम, निजी या स्थैतिक है तो एक विधि को ओवरराइड नहीं किया जा सकता है।

+0

तो, मैं सही था, यह एक विधि को निजी और साथ ही अंतिम या स्थिर एक ही समय में समझ में नहीं आता है? हम्म ... – helpdesk

+0

सटीक होने के लिए, यदि विधि निजी या स्थैतिक है, तो इसे अंतिम रूप में ध्वजांकित करने के लिए भी अनावश्यक है। हालांकि रिवर्स सच नहीं है। –

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

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