जावा में, विधियों के लिए चार उपलब्ध पहुँच संशोधक हैं:
public
- कोई भी वर्ग इस पद्धति का उपयोग कर सकता है।
protected
- एक ही पैकेज में कक्षाएं और किसी भी पैकेज में उपवर्ग इस पद्धति का उपयोग कर सकते हैं।
private
- केवल यह वर्ग इस पद्धति का उपयोग कर सकता है।
no modifier
("पैकेज निजी") - एक ही पैकेज में केवल कक्षाएं इस पद्धति का उपयोग कर सकती हैं।
अक्सर ऐसा होता है कि मैं एक सुपरक्लास में उपयोगी तरीके रखना चाहता हूं, जिसे सभी उपवर्ग उपयोग कर सकते हैं। लेकिन इस पद्धति का उपयोग करने के लिए अन्य वर्गों के लिए यह समझ में नहीं आएगा, और एक अर्थ में यह एनकैप्सुलेशन को तोड़ देगा।
इसलिए मुझे इन उपयोगी तरीकों को सुपरक्लास में घोषित करना होगा public
या protected
, जो उन्हें अन्य सभी वर्गों के लिए कम से कम पैकेज में उजागर करता है। हालांकि वे केवल उपवर्गों द्वारा उपयोग किए जाने के लिए हैं।
क्या subclasses-only
जावा में एक्सेस मॉडिफायर नहीं है इसका कोई कारण है ? यह मुझे बहुत अजीब लगता है। क्या मैं कुछ भूल रहा हूँ?
इसके अलावा, एक subclasses-only
एक्सेस संशोधक भी उपयोगी होगा जब आप केवल उपवर्गों के लिए चर को उजागर करना चाहते हैं। जो मुझे बहुत होता है।