Public,protected,private解析
Public成员可以被同一个类或同一个包或不同包下的类都可以访问。
Protected成员可以被同一个类或同一个包下的类可以访问,不能被不同包下的类访问。
Private成员可以被于同一个类访问,不能被同一个包或不同包下的类访问。
同类 同包 不同包子类 不同包非子类
private yes
default yes yes
protected yes yes yes
public yes yes yes yes
特别说明一点protected在不同包子类下为yes的情况:
包外子类有权访问父类成员是什么意思?它指子类继承该成员。 然而,这不意味着包外子类能够使用父类实例的引用访问该成员。 换句话说,保护=继承。 保护不是指子类能够处理受保护的父类成员,就好像它是公有的那样。 因此,如果包外子类获得父类引用,该子类不能在父类引用上使用点运算符来.访问受保护的成员。 子类只能通过继承看到受保护的成员。(大家可以自己试试看)
文章来源:
http://java999.blog.51cto.com/259217/132643