在java中提供有四种访问控制权限:
private (私有访问权限、仅供本类使用)< default(包访问权限) < protected (继承访问权限)< public(公共访问权限)
-
包访问权限:在一个包中的所有源文件都可以使用。
-
继承访问权限(protected):仅供子类使用
对于public永远都可以访问,对于封装性而言主要是private、default、protected权限。
eg:
protected访问权限:
package father;
public class Father {
// 此时定义的是protected权限
protected String msg = "www.bit.java" ;
}
定义另外一个包进行该类继承:
import father.Father; // 不同包
public class Child extends Father{ public void print() {
System.out.println(super.msg);
// 父类中protected权限
}
}
定义测试类:
package test;
import child.Child;
public class TestProtected {
public static void main(String[] args) {
Child child = new Child();
child.print();
}
}
在不同包中,只有子类能访问父类中的protected权限。
关于权限选择
- 对于封装的描述90%使用private,只有10%会使用protected,这两个都叫封装。
- 属性都使用private,方法都使用public. 封装性就是指private、default、protected三种权限的使用。