2012-11-09 23 views
10
Modifier  Class  Package Subclass World 
    public   Y   Y   Y   Y 
    protected  Y   Y   Y   N 
    no modifier  Y   Y   N   N 
    private   Y   N   N   N 


जावा में विरासत के बिना उसी पैकेज में सुरक्षित क्यों पहुंचा जा सकता है?

public class a { 
    protected int x; 
    } 

    public class b { 
     b() { 
       a A=new a(); 
       A.x=9;//why we can access this field ? 
     } 
    } 

कृपया मदद मेरी की विशिष्ट कार्य जावा

+0

कृपया मुझे जावा – motaz99

+0

में संरक्षित विशिष्ट कार्य जानने में मदद करें: http://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public-default- संरक्षित-and -प्रिवाइट – looper

+8

क्योंकि जावा प्रोग्रामिंग भाषा को डिज़ाइन किया गया था। – Jesper

उत्तर

13

क्यों में संरक्षित पता करने के लिए? क्योंकि जावा प्रोग्रामिंग भाषा को डिजाइन किया गया था। इसके लिए और कुछ नहीं है।

कुछ ऐसा है protected करता

  • वर्ग से ही पहुंचा जा सकता है, एक ही पैकेज में
  • वर्गों (अगर वे उपवर्गों हैं या नहीं कोई फर्क नहीं पड़ता),
  • उपवर्गों (नहीं कोई फर्क नहीं पड़ता कि वे एक ही पैकेज में हैं या नहीं)।

यह सी ++ से अलग है, लेकिन जावा सी ++ नहीं है, इसलिए यह आवश्यक रूप से उसी तरह काम नहीं करता है।

+1

धन्यवाद
तो जावा में यदि हमारे पास पैकेट पर है तो हम उप-वर्गों को विशाल क्षेत्र तक पहुंचने और अन्य वर्गों को उसी पैकेट में इसे एक्सेस करने के लिए अनुमति नहीं दे सकते – motaz99