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三者包权限总结图