訪問修飾符定義了類、屬性和方法的訪問權限,Java 中包含四種,訪問權限從小到大爲 private、default、protected 和 public。table
- public,公共修飾符,被其修飾的類、屬性或方法在項目中任意類中訪問。
- protected,保護修飾符,被其修飾的類、屬性或方法在當前類所屬包或當前類的子類中可訪問。
- default,默認修飾符,沒有明確聲明修飾符時默認採用此修飾符,被其修飾的類、屬性或方法只能被當前類所屬包中的類訪問。
- private,私有修飾符,被其修飾的類、屬性或方法僅在當前類中可訪問。
private |
√ |
× |
× |
× |
default |
√ |
√ |
× |
× |
protected |
√ |
√ |
√(部分) |
× |
public |
√ |
√ |
√ |
√ |
如下是訪問修飾符相關知識中須要特別注意的內容:class
- default 修飾的類、屬性或方法若是是在不一樣包下,即便是子類也沒法訪問。
- protected 修飾的類、屬性或方法能夠在不一樣包子類中訪問,可是沒法經過該子類的實例進行訪問。例如 A 是 B 的父類,二者分屬不一樣包下,A 中的方法 a() 使用 protected 進行修飾,此時咱們能夠在 B 的方法 b() 中調用 super.a(),可是沒法經過實例化進行調用, new B().a() 則沒法調用。