Java中public,private,protected的区别,包的访问权限

                                  Java中public,private,protected的区别,包的访问权限

一、private表示私有,顾名思义只有在本类中才能访问
       1.在本类中访问的情况
        
       
        2.在同一包中继承类能否访问父类中的私有属性
         

       
        从上面的代码块中我们可以看出B类和A类在同一包中,并且B类继承了A类,但B类无法访问A类中的私有属性c

       3.在同一包中普通类能否访问另一个类中的私有属性
      

      
         从上面的代码块中我们可以看出B类和A类在同一包中,并且B类并没有继承A类而是通过引用的方式调用A类中的私有属性c同样是无法访问

       4.在不同包中继承类能否访问父类中的私有属性
      
          
       从上面的代码块中我们可以看出C类和A类在不同包中,并且C类继承了A类,但C类无法访问A类中的私有属性c

       5.在不同包中普通类能否访问另一个类中的私有属性
      
          
       从上面的代码块中我们可以看出C类和A类在不同包中,并且C类并没有继承A类而是通过引用的方式调用A类中的私有属性c同样是无法访问

二、public表示公有,在任何情况都可以访问
       1.在本类中访问的情况
       
       2.在同一包中继承类能否访问父类中的公有属性
      
        
          从上面的代码块中我们可以看出B类和A类在同一包中,并且B类继承了A类,B类可以访问A类中的公有属性a
        
       3.在同一包中普通类能否访问另一个类中的公有属性
       
       
        从上面的代码块中我们可以看出B类和A类在同一包中,并且B类并没有继承A类而是通过引用的方式调用A类中的公有属性a同样是可以访问的
         
       4..在不同包中继承类能否访问父类中的公有属性
      
         
       从上面的代码块中我们可以看出C类和A类在不同包中,并且C类继承了A类,C类无法访问A类中的公有属性a

       5.在不同包中普通类能否访问另一个类中的公有属性
      

         
         从上面的代码块中我们可以看出C类和A类在不同包中,并且C类并没有继承A类而是通过引用的方式调用A类中的公有属性a是可以访问的

三、protected(受保护的)
       1.在本类中访问的情况
       
        2.在同一包中继承类能否访问父类中的protected属性

         

          
        从上面的代码块中我们可以看出B类和A类在同一包中,并且B类继承了A类,B类可以访问A类中的protected属性b

        3.在同一包中普通类能否访问另一个类中的protected属性
        

        

        从上面的代码块中我们可以看出B类和A类在同一包中,并且B类并没有继承A类而是通过引用的方式调用A类中的protected属性b同样是可以访问的

        4.在不同包中继承类能否访问父类中的protected属性
       
        
         从上面的代码块中我们可以看出C类和A类在不同包中,并且C类继承了A类,C类可以访问A类中的protected属性b

         5.在不同包中普通类能否访问另一个类中的protected属性

        
          

         从上面的代码块中我们可以看出C类和A类在不同包中,并且C类并没有继承A类而是通过引用的方式调用A类中的protected属性b是无法访问的

四、public,private,protected三者包权限总结图