Java 访问修饰符

java的访问修修饰符有四种,分别是:public 、protected、friendly ,private ;
这四种修饰符,访问级别如下:
               当前类        子类            同一个包中类     其它包中类
public        √             √                  √                 √
protected   √             √                  √                ×
friendly       √             ×                  √                ×
private        √           ×                   ×                 ×

默认不写是:friendly

上面都是网上的答案;

但是我本人实践过 ,如果父类中的某个变量 ,前面没有写访问修饰符。也就是friendly ,那么 子类照样可以调用。可以用this.变量名;super.变量名;子类对象.变量名; 所以我总结出:

                当前类          子类               同一个包中类   其它包中类
public         √              √                      √              √
protected   √              √                      √             ×
friendly      √              √                       √             ×
private       √             ×                        ×             ×


欢迎大家积极讨论此问题;

因为父子类在同一个包中,子类当然可以看到父类为默认访问修饰符的变量

[color=red] friendly 缺省—在同一个包中可见,子类不在一个包中,子类中也不可见 [/color]

[color=indigo]应该这样:[/color]

修饰符 同一个类 同一个包 子类 其他包中的类
public √ √ √ √
protected √ √ √

friendly √ √

private √