Java中的访问权限控制符
Java中的访问修饰符(访问控制符)包括:public,protected,default,private。分别代表了不同的访问权限。如果省略,则被视为使用了默认的default作为访问修饰符。
从字面含义上面理解,很显然,这几个访问控制符(public -> protected -> default ->private)所代表的访问权限是依次递减的。那么,所谓的访问权限是相对什么来说的呢?这个问题的答案就是,这里的权限是针对是不是同一个类、是不是属于同一个包、是不是存在父类子类关系。
public:权限最大,不受类、包等的限制,都可以访问。
protected:次于public,限制之处在于如果不再同一个包中,只有和它存在继承关系的子类才可以访问它。
default:进一步受限,必须是同一个包才能访问。
private:这个就将权限限制在了类中,只有同一个类中的成员才能访问。
下面用表格更加直观地展现一下:
private | default | protected | public | |
同一个类中的成员 | Y | Y | Y | Y |
同一个包中的成员 | Y | Y | Y | |
不同包中但存在继承关系的子类成员 | Y | Y | ||
全局 | Y |