对于Java中权限修饰符的理解

image

  • 老是把Java中权限修饰符给忘记,写一个博客加深印象吧
  • 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类。
  • 首先要知道包的概念,Java中一个包是指一个package下的所有文件。
  • protected适用于修饰成员变量的,也就是类中的方法和属性,不能用于修饰类。子类B继承了父类A,如果父类class是缺省的,而子类class是public的,那么在其他包的类中,可以定义该子类B的对象,也可以调用父类A中的protected修饰的方法,但是不能在其它包中定义父类A的对象。
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的。
Tags: