Java中的访问控制修饰符

在Java中,访问控制修饰符决定了一个类是否可以使用其它类中的某个域或者调用其它类中的某个方法,访问控制修饰符有两种层级:

  1. top level,修饰类,有public和package-private(也就是没显式指定修饰符时的类型)
  2. member level,修饰类中的成员,有public,private,protected和package-private(也就是没显式指定修饰符时的类型)

下表列出了所有可能的情况,Y表示可以访问,N表示不可以访问。

修饰符 子类 全局
public Y Y Y Y
protected Y Y Y N
no modifer Y Y N N
private Y N N N

可以发现上面的表的左下角到右上角的对角线都是Y,对角线以上都是Y,对角线以下都是N。下面用一个例子来说明。
Java中的访问控制修饰符_第1张图片

下面的表展示了在行名表示的修饰符对类Alpha中的成员修饰时,Alpha中成员对列名表示的类中的成员的可见性。

修饰符 Alpha Beta AlphaSub Gamma
public Y Y Y Y
protected Y Y Y N
no modifer Y Y N N
private Y N N N

你可能感兴趣的:(Java)