![image](https://img2022.cnblogs.com/blog/2978049/202209/2978049-20220922234244827-1635949196.png)
- 老是把Java中权限修饰符给忘记,写一个博客加深印象吧
- 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类。
- 首先要知道包的概念,Java中一个包是指一个package下的所有文件。
- protected适用于修饰成员变量,也就是类中的方法和属性,不能用于修饰类。子类B继承了父类A,如果父类class是缺省的,而子类class是public的,那么在其他包的类中,可以定义该子类B的对象,也可以调用父类A中的protected修饰的方法,但是不能在其它包中定义父类A的对象。
- protected修饰的成员:子类和父类即使不在同一个包中,子类也能访问到父类中被protected修饰的成员
package p1;
public class B extends A{
}
package p1;
public class B {
protected String s;
public B() {
}
public void getC(){
System.out.println("C的方法");
}
}
package p2;
public class TestExtendAndProtected {
public static void main(String[] args) {
C c = new C();
c.getC();
D d = new D();
d.getC();
}
}
- 需要注意的就是抽象类,class只能修饰为public或protected。如果说抽象类省略了权限修饰符,那它默认就是public的。