天天看点

再学Java 之 private、protected、public和default的作用域

前言:如果提到protected的访问控制级别,您的第一反应是”只能是子类才可以访问“,那么您很可能需要往下看。

首先,大致介绍一下各个访问控制符的访问控制级别(具体的介绍很多大牛的博文都有介绍,我就不细说了,可以点击查看),如下图:

private

default

protected

public

同一个类中

同一个包中

子类中

全局范围内

在这里,很多人都存在一个误区,就是,认为protected修饰的方法只能在子类中才能访问,其他情况下不行;事实上,正确的表述方式应该是”如果在同一个包,则protected修饰的成员都可以被访问到;假如不在同个包,则只有子类才能访问到“。

下面写一个实例(也可以到 下载):

(1)首先是程序的结构,这里,有两个包,分别有com.harvin包含parent和child类;com.other包含other_child类

再学Java 之 private、protected、public和default的作用域

(2)com.harvin.parent类的代码:

(3)com.harvin.child类代码:

(4)com.other.other_child类的代码: