下面归纳一下Java用于控制可见性的四个访问修饰符:
1.仅对本类可见-private
2.对所有类都可见-public
3.对本包和所有子类都可见-protected
4.对本包可见-默认
本人理解:可见指的是可访问
可访问有两种情况
继承访问-子类可以直接读写父类字段
实例访部-通过new一个实例出来,通过引用来
读写字段
第二3条中的所有子类都可见的所有子类所指的
是在本包和非本包中的子类两种情况
protected访问修饰符:
- 公共属性总能访问,呵呵,这个不用说了
- 同一包的子类,可以任意使用
- 同一个包的正常类,可以直接用他的实例进行访问
- 不同包的正常类,无法访问任何属性和方法
- 不同包的子类,不能使用父类实例的属性和方法
- 不同包的子类,不能使用其它包的子类实例的属性和方法
- 不同包的子类,可以直接使用父类的属性和方法
总之,不同包的子类就规规矩矩的在自己的代码里用父类的属性就行了。其它的使用都是不允许的。