Java的访问修饰符
参考
https://blog.****.net/u010876691/article/details/72724415
https://blog.****.net/leilu2008/article/details/6719591
Java中提供了四个关键字在类的内部设置边界,控制类的访问权限,分别是:public、protected、default(friendly、package)、private
,这些访问的指定词决定了紧跟其后的被定义的东西可以被谁使用。
- public:表示其后的元素对任何人都可以使用
- protected:提供一个
从包外部访问包(有限制)的方法
-
继承的类
可以访问protected修饰的元素
-
同包中的其他类元素
也可以访问
-
- default(friendly、package):Java还有一种
默认的
访问权限,在不指定任何关键字的情况下,这种权限将发挥作用,它是一种包的访问权限(包指文件夹哦)
,即在当前包中的任何元素可以访问 - private:表示其后的元素除了类型的创建者和
内部的
方法之外任何人都不能访问
注意:
所谓的访问,可以分为两种不同方式:
- 第一,通过
对象实例
访问 - 第二,
直接
访问
比如说,某父类protected权限的成员
,子类
是可以直接访问
的,换一种说话是子类
其实继承
了父类的除了private成员外的所有成员
,包括protected成员
,所以与其说
是子类访问了父类的protected成员,不如说
子类访问了自己的从父类继承来的protected成员。
另一方面,如果该子类与父类不在同一个包里
,那么通过父类的对象实例
是不能访问父类的protected成员的
。