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