對於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: